我很确定有一种方法可以使用require传递变量。
所以它看起来像这样:
var model = require('model')(mongoose);
使用上面的代码行,我想传递我的模型文件我的数据库信息(mongoose),这样如果我使用不同的数据库访问相同的模型,我可以传递不同的数据库信息。
但是,即使上面的语法是正确的,我也不确定我的模型文件本身是什么样子。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
module.exports = function (mongoose) {
// . . .
return model;
};
答案 1 :(得分:2)
您可以通过参数将moongoose传递给该文件
var model = require('model')(mongoose);
你的模块看起来像这样,你可以在module.exports中创建一个对象,并且可以将多个属性附加到该对象,最后从函数中返回它
module.exports = function (mongoose) {
model ={};
model.properties = {};
model.yourfunction1 = function(){};
return model;
};
我想在这种情况下我无法为module.exports分配任何其他东西吗?
您的评论的答案解释如下
在module.exports和exports之间选择取决于你
出口
exports.object1 = {};
exports.object2 = {};
对于module.exports
module.exports = function(){
myobj={}
myobj.object1 = {};
myobj.object2 = {};
return myobj
}
现在调用它会有所不同
对于导出,它将直接在文件变量
上提供var file = require('./file');
console.log(file.object1);
对于module.exports ,您将通过附加函数括号来执行它,以便可以返回对象
var file = require('./file')();
console.log(file.myobj.object1);