我有一个很大的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 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);
});
}
并希望将它们放在单独的文件中。我怎样才能做到这一点?我可以导出一个函数但是如何导出多个函数?
像
module.exports = function(){
function sayHello(){
console.log("Hello");
}
function calc(){
return 5 + 7;
}
}
需要模块并致电
myModule.sayHello();
var num = myModule.calc();
答案 0 :(得分:3)
在新模块中,您可以导出对象并在对象
中定义函数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);