2012-09-20 46 views
4

我有一个架构,使用数字如下。Mongoose TypeError创建使用的架构时

var mongoose = require('mongoose') 
    , Schema = mongoose.Schema 
    , ObjectId = Schema.Types.ObjectId 
    , Mixed = Schema.Types.Mixed 
    , Number = Schema.Types.Number 
    , Date = Schema.Types.Date 

var ItemSchema = new Schema({ 
    quantity:{type:Number, required:true, min:1}, 
    category:{type:String, required:true, enum:categoryList}, 
    description:{type:String, required:true}, 
    cost:{type:Number, required:true, min:0, default:0}, 
    appraisedValue:{type:Number, min:0, default:0}, 
    appraisedOn:Date, 
    purchasedOn:Date, 
    purchasedFrom:String, 
    brand:String, 
    dynamicFieldList:[DynamicFieldSchema] 
}) 
exports.ItemSchema = ItemSchema 
exports.Item = mongoose.model('Item', ItemSchema) 

但是当我尝试运行我的申请,我receieve一个TypeError:未定义的类型,在“量”。如果数量值被注释掉,这也发生在'成本'上。

堆栈跟踪为:

C:\Users\a\Documents\Git\has-inventory.js\node_modules\mongoose\lib\schema.js:325 
throw new TypeError('Undefined type at `' + path + 

TypeError: Undefined type at `quantity` 
    Did you try nesting Schemas? You can only nest using refs or arrays. 
at Function.Schema.interpretAsType (C:\Users\a\Documents\Git\has-inventory.js\node_modules\mongoose\lib\schema.js:325:11) 
at Schema.path (C:\Users\a\Documents\Git\has-inventory.js\node_modules\mongoose\lib\schema.js:268:29) 
at Schema.add (C:\Users\a\Documents\Git\has-inventory.js\node_modules\mongoose\lib\schema.js:200:12) 
at new Schema (C:\Users\a\Documents\Git\has-inventory.js\node_modules\mongoose\lib\schema.js:69:10) 
at Object.<anonymous> (C:\Users\a\Documents\Git\has-inventory.js\domain\inventory.js:34:18) 
at Module._compile (module.js:449:26) 
at Object.Module._extensions..js (module.js:467:10) 
at Module.load (module.js:356:32) 
at Function.Module._load (module.js:312:12) 
at Module.require (module.js:362:17) 

回答

6

删除这两条线:

, Number = Schema.Types.Number 
, Date = Schema.Types.Date 

内置的JavaScript NumberDate类型应该在架构确定指标来代替。