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.
答案 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();