使用mongooseSchema.methods函数运行应用程序时出错

使用NodeJS(v0.10.25)和ExpressJS(v4.4.12)以及下面的Schema

var mongoose = require('mongoose'); var Schema = mongoose.Schema; var models = require('./inherit/models.js'); var userSchema = new Schema({ username: { type: String, required: true, unique: true, index: true }, password: { type: String, required: true , minlength: 128, maxlength: 128 }, email: { type: String, required: true, unique: true, index: true }, profileImage: { type: String }, company: { type: Schema.Types.ObjectId, ref: 'Company' }, info: { name: { type: String, required: true }, dateOfBirth: { type: Date }, gender: { type: String, enum: ['M', 'F'] } }, address: [ models.addressModel ], contacts: [ models.contactModel ], flags: [ models.flagsModel ], login: { lastDate: { type: Date }, lastIp: { type: String }, dtCreate: { type: Date }, dtUpdate: { type: Date } } }); userSchema.methods.findComplete = function(findQuery, populateObject) { if (typeof populateObject === 'undefined') populateObject = 'company'; return this.model('User').find(findQuery).populate(populate).exec(); }; userSchema.methods.login = function(username, password) { //Some logic return true; } userSchema.methods.contactTypes = function() { return { 1: 'E-mail adicional', 2: 'Telefone residencial', 3: 'Telefone comercial', 4: 'FAX', 50: 'Telefone celular', 51: 'Celular (VIVO)', 52: 'Celular (TIM)', 53: 'Celular (Claro)', 54: 'Celular (Oi)', 55: 'Celular(Nextel)' } } module.exports = mongoose.model('User', userSchema); 

当试图运行应用程序,我得到以下错误:

 TypeError: Cannot read property 'scope' of undefined at model.Object.defineProperty.set [as login] (/home/grupow/Projetos/mean/node_modules/mongoose/lib/document.js:1638:25) at applyMethods (/home/grupow/Projetos/mean/node_modules/mongoose/lib/model.js:3151:31) at Function.compile (/home/grupow/Projetos/mean/node_modules/mongoose/lib/model.js:3121:3) at Mongoose.model (/home/grupow/Projetos/mean/node_modules/mongoose/lib/index.js:392:17) at Object.<anonymous> (/home/grupow/Projetos/mean/models/users.js:54:27) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/grupow/Projetos/mean/routes/users.js:5:16) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) [nodemon] app crashed - waiting for file changes before starting... 

当'userSchema.methods'被删除,应用程序运行,否则,这个错误将始终显示。

你能帮我么?

你不能将一个方法命名为一个属性,对于任何对象都是一样的。 尝试改变方法名称来设置setLogin或别的东西。

mongoose有一个封闭的问题,解释了我在这里所说的