How to keep app.js file small

时间:2016-07-25 11:33:41

标签: node.js

I am working on node js. Day by day my app.js file is being longer. How can I reduce it. So that I can write code in other files. Still I have tried nothing but read about modules on google.

3 个答案:

答案 0 :(得分:0)

您可以将代码分成不同的文件,然后使用require将其导入app.js

var init = require('./config/init')(), 
config = require('./config/config')

在上面的代码中,我将一些init函数和配置文件分离到一个单独的文件中,然后我将其导入。

答案 1 :(得分:0)

一个简单的例子可能如下,在你的app.js文件中设置服务器:

const express = require('express');
const http = require('http');
const app = express();

const router = require('./router'); // <= get your router here


// Call the router, now you are listening 
// using the routes you have set up in the other file
router(app);

const server = http.createServer(app);

server.listen(port, () => {
  console.log('Server listening on port: ', port);
});

在您的路由器中,您可以使用module.exports

导出应用程序功能
module.exports = app => {
  app.get('/', function(req, res) {
    res.end('hello');
  }
  // all your routes here
}

现在你已经分离了路由的逻辑。

您也可以使用相同的流程导出多个方法或变量。

myFuncs.js

func1 function() {}
func2 function() {}

module.exports = {
  func1
  func2
}

(请注意,我使用的是ES6,它与module.exports = { func1: func1, func2: func2 }

相同

然后以同样的方式要求它们

const myFuncs = require('./myFuncs')

myFuncs.func1() // <= call func1
myFuncs.func2() // <= call func2

您可以对变量执行相同的操作,甚至可以与module.exports结合使用以缩短代码

mySecrets.js

module.exports = {secret_key: 'verysecretkey'}

app.js

const secret = require('./mySecrets')

这样你就可以将你的api_keys等保存在一个单独的文件中,或者甚至只是你想要根据需要导入的变量。

此处提供了更多详细信息:https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export

答案 2 :(得分:0)

在外部文件中编写模块,例如:./hello.js

module.exports = {
     function1 : function(){console.log('hello module');}
};

app.js

中加载该模块
var hello = require('./hello.js');

// call your function
hello.function1();