Node.js - 使用require传递对象

时间:2014-12-12 21:54:45

标签: node.js

我很确定有一种方法可以使用require传递变量。

所以它看起来像这样:

var model = require('model')(mongoose);

使用上面的代码行,我想传递我的模型文件我的数据库信息(mongoose),这样如果我使用不同的数据库访问相同的模型,我可以传递不同的数据库信息。

但是,即使上面的语法是正确的,我也不确定我的模型文件本身是什么样子。任何人都可以帮我解决这个问题吗?

2 个答案:

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