mongoose静态types错误:没有这样的方法

同时调用mongoose的静态方法我得到这个错误,我已经find了错误,但仍然找不到相关的解决scheme来解决它

TypeError: Object function model(doc, fields, skipId) { if (!(this instanceof model)) return new model(doc, fields, skipId); Model.call(this, doc, fields, skipId); } has no method 'returnEventType' 

模型:

 var mongoose = require('mongoose'), Schema = mongoose.Schema; var portalSchema = new Schema({ created: { type: Date, default: Date.now() } }), eventType = new Schema({ ID: { type: Schema.Types.ObjectId, ref: 'docevents' }, Accepted: { type: Boolean, default: 0 } }); var Portal = mongoose.model('Portal', portalSchema), EVENT = Portal.discriminator('EVENT', eventType); portalSchema.statics.returnEventType = function(cb) { cb(EVENT); }; 

控制器:

 exports.sendInvite = function(req,res) { Portal.returnEventType(function(Event){ var EventObj = new Event({'ID': req.user._id}); EventObj.save(function(err,eventObj) { console.log(eventObj); }); } 

在创build模型之后,不能将静态方法添加到模型中,因此请在调用model之前移动returnEventType的定义:

 portalSchema.statics.returnEventType = function(cb) { cb(EVENT); }; var Portal = mongoose.model('Portal', portalSchema);