0
モデルにインスタンス関数を実装しようとしています。フィールドexpiresAt
のモデルインスタンスの値が特定のタイムスタンプを超えているかどうかをチェックします。これは、これはインスタンスメソッドMongoose、インスタンスメソッド内のインスタンスフィールドにアクセスする正しいメソッド
MySchema.methods.isExpired =() => {
console.log(this.expiresAt) // undefined
return (this.expiresAt < (Date.now()-5000))
};
しかしthis.expiredAt
の値が定義されていないです私のスキーマ
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 =() => {
try{
console.log(this._doc.expiresAt);
console.log((Date.now()-5000));
return (this._doc.expiresAt < (Date.now()-5000));
} catch (e){
console.error(e);
}
};
を次のように私は機能を書き換えしようとしたこれは、メソッド内のインスタンスフィールドにアクセスするための正しい方法は何ですかラインconsole.log(this._doc.expiresAt);
ため
TypeError: Cannot read property 'expiresAt' of undefined
例外の原因は?
@drinchevありがとうございました。この機能のステータスについてはわかりませんでした –