在UsersSchema中,我定义了一个函数,可以从db返回一个对象,知道decoded._id
和tokens.token
:
UserSchema.statics.findByToken = function(token) {
var User = this;
var decoded;
try {
decoded = jwt.verify(token, 'abc123');
} catch (e) {
return Promise.reject();
}
return User.findOne({
'_id': decoded._id,
'tokens.token': token,
'tokens.access': 'auth'
});
};
由于某些原因,尽管具有该ID的对象存在于数据库中,但findOne
函数仍返回null
。
答案 0 :(得分:0)
我认为这是因为您没有等待异步查询解决
尝试一下
UserSchema.statics.findByToken = async function(token) {
var User = this;
var decoded;
try {
decoded = jwt.verify(token, 'abc123');
} catch (e) {
return Promise.reject();
}
return await User.findOne({
'_id': decoded._id,
'tokens.token': token,
'tokens.access': 'auth'
});
};
答案 1 :(得分:0)
完成!解决了!我更新了猫鼬版本,该版本具有重大更改,并且其他模块中的功能开始失败。我用新的替换了它们,并且有效!