模型与架构上的 Node.js 和 mongoose module.exports
Posted
技术标签:
【中文标题】模型与架构上的 Node.js 和 mongoose module.exports【英文标题】:Node.js and mongoose module.exports on a model vs Schema 【发布时间】:2015-07-03 16:38:54 【问题描述】:我一直在关注有关 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】:嗯。我正在阅读代码以发布作为差异的示例,并得出了这个结论。
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BearSchema = new Schema(
name: String
);
module.exports = mongoose.model('Bear', BearSchema);
然后我注意到架构是内联定义的(我认为?)而不是被声明。我会假设这是因为以后,在这个模型中添加更多的模式声明以及方法对我来说会更干净。如果有人可以给我澄清,我会给你答案!
【讨论】:
我在 scotch 上遵循相同的教程,我只是想知道,预期的 Nerd 数据 json 是什么?喜欢: "_id" : ObjectId("5b965b3a15da33b567d9f794"), "name" : "Tom"以上是关于模型与架构上的 Node.js 和 mongoose module.exports的主要内容,如果未能解决你的问题,请参考以下文章
Node.js 和 Passport 对象没有方法 validPassword