为什么在单独的模型文件中使用model.export?

时间:2013-03-17 15:38:41

标签: node.js mongodb express mongoose

在查看有关拆分模型数据的问题的一些Stackoverflow答案时,我看到两种不同的格式。见下文:

var UserSchema = mongoose.Schema({
    name: String
})

module.exports = mongoose.model('User', UserSchema);

与此方法相比:

var UserSchema = mongoose.Schema({
    name: String
})

mongoose.model('User', UserSchema);

使用module.exports...与仅使用mongoose.model...之间有什么区别?

1 个答案:

答案 0 :(得分:11)

mongoose.model返回它定义的Model。将其设置为module.exports可以轻松创建Model的实例,而无需从连接中检索它。

a.js

var User = require('./b');
var myUser = new User;

b.js

var UserSchema = mongoose.Schema({
    name: String
})

module.exports = mongoose.model('User', UserSchema);

...请注意我可以直接致电new User(将User设置为require('./b')之后......这是module.exports允许我这样做的。请注意这一点不是mongoose本身的一部分,而是Nodes module system的一部分。