2015-04-24 68 views
0

我一直在關注有關MEAN堆棧的很多教程,並且我遇到了一個難以回答的問題(注意:我發現一個可能duplicate搜索時,但不相信它回答我的問題)Node.js和mongoose module.exports模型vs Schema

就拿這個代碼,可以發現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?

回答

0

好吧。我正在通過代碼閱讀,作爲一個差異的例子,並談到了這一點。

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

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

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

然後我注意到架構是內聯(我認爲?)而不是被聲明。我會認爲這是因爲後來,在這個模型中添加更多模式聲明以及方法會更加清潔。如果任何人都可以給我澄清,我會給你答案!

相關問題