【发布时间】:2017-08-06 17:28:42
【问题描述】:
我正在尝试在模型上实现实例函数。它检查字段expiresAt 的模型实例值是否超出特定时间戳。这是我的架构
let MySchema = new mongoose.Schema({
userId : { type : ObjectId , unique : true, required: true },
provider : { type : String, required : true},
expiresAt : { type : Number, required : true}
},{ strict: false });
这是实例方法
MySchema.methods.isExpired = () => {
console.log(this.expiresAt) // undefined
return ( this.expiresAt < (Date.now()-5000) )
};
但this.expiredAt 的值未定义。然后我尝试重写函数如下
MySchema.methods.isExpired = () => {
try{
console.log(this._doc.expiresAt);
console.log((Date.now()-5000));
return (this._doc.expiresAt < (Date.now()-5000));
} catch (e){
console.error(e);
}
};
这会导致异常
TypeError: Cannot read property 'expiresAt' of undefined 代表线路console.log(this._doc.expiresAt);
访问方法内的实例字段的正确方法是什么?
【问题讨论】:
标签: node.js mongoose mongoose-schema