Node.js和mongoose module.exports在模型vs Schema上

时间:2015-04-24 22:01:08

标签: node.js mongodb mongoose schema

我一直在关注MEAN堆栈的许多教程,我发现了一个我很难回答的问题(注意:我发现了可能的 duplicate搜索,但不相信它回答了我的问题)

以此代码为例,可以找到here

// app/models/nerd.js
// grab the mongoose module
var mongoose = require('mongoose');
// define our nerd model
// module.exports allows us to pass this to other files when it is called
module.exports = mongoose.model('Nerd', {
  name : {type : String, default: ''}
});

完成教程后,我重新编写了代码,尝试复制课程("菜单项"用于限制):

var mongoose = require('mongoose');

module.exports = mongoose.model('Item', {
  name: {type: String, required: true},
  description: {type: String, require: true},
  price: {type: String, required: true},
  ingredients: [{
    name: {type: String, default: ''},
    amt: {type: String, enum: ['None', 'Reg', 'XTRA'], required: true}
  }]
});

我将使用界面来创建新的菜单项。我应该按原样保留代码,还是使用Schema?

1 个答案:

答案 0 :(得分:0)

好。我正在阅读代码以发布作为差异的示例,然后来到这里。

var mongoose     = require('mongoose');
var Schema       = mongoose.Schema;

var BearSchema   = new Schema({
    name: String
});

module.exports = mongoose.model('Bear', BearSchema);

然后我注意到模式是内联定义的(我认为?)而不是声明。我认为这是因为稍后,在这个模型中添加更多的模式声明以及方法将会更加清晰。如果有人能给我澄清,我会给你答案!