重构NodeJs函数

我有一个大app.js文件,并希望拆分代码。 我把所有的路线放到一个名为routes.js的模块中

 module.exports = function(app){ app.get('/', function (req, res) { res.redirect('/page1'); }); app.get('/page1', function (req, res) { res.render('page1'); }); app.get('/page2/:id', function (req, res) { res.render('page2', { val: Number(req.params.id) }); }); } 

并在我的app.js我打电话

 const routes = require('./Server/routes')(app); 

所以这工作正常。

我有一些function

 function loadData(id, callback) { fs.readFile('./database.json', 'utf8', function (err, data) { var json = JSON.parse(data); var arr = json.arr; var obj = arr.find(e => e.id === Number(id)); callback(obj); }); } 

并希望将它们放在单独的文件中。 我怎样才能做到这一点? 我能够导出一个function,但我怎样才能导出多个?

喜欢

 module.exports = function(){ function sayHello(){ console.log("Hello"); } function calc(){ return 5 + 7; } } 

需要模块和呼叫

 myModule.sayHello(); var num = myModule.calc(); 

在你的新模块中,你可以导出一个对象并在对象中定义你的函数

 module.export = { sayHello: function() { console.log("Hello"); }, calc: function() { return 5 + 7; } } // usage: const mymodule = require('path/to/your/file'); 

你也可以导出一个函数,并在原型中定义你需要的函数

 function mymodule(someArgsIfNeeded) { // do some initialization } mymodule.prototype.sayHello = function() { console.log("Hello"); } mymodule.prototype.calc = function() { return 5 + 7; } module.export = mymodule // usage: const mymodule = require('path/to/your/file')(someArgsIfNeeded);