0
我試圖在模型上實現實例函數。它會檢查expiresAt
字段的模型實例值是否超出特定的時間戳。這是我的架構Mongoose,訪問實例方法內的實例字段的正確方法
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);
什麼是訪問方法內實例字段正確的方法?
非常感謝@drinchev,我不知道這個在箭頭函數中的狀態 –