我在实施findOneAndUpdate查询时遇到了麻烦。
//UserController
UserDAO
['findOneAndUpdate'](userId, {'passwordToken': passwordToken, 'resetPasswordExpires': resetPasswordExpires})
.then( (user) => {
return MailController.forgotPasswordMail(user, hostUrl);
})
.then( (updated) => {
return res.status(200).json(updated);
})
.catch(error => {
return res.status(400).json(error);
});
//UserDAO
userSchema.static('findOneAndUpdate', (userId, query) => {
return new Promise((resolve, reject) => {
if (!_.isObject(query)) {
return reject(new TypeError('query is not a valid Object.'));
}
User
.findOneAndUpdate(
{_id: userId},
query,
{upsert: true}
)
.exec((err, updated) => {
err ? reject(err) : resolve(updated);
});
});
});
这是我的userController和userDAO上的两个方法。一旦我执行它们,它会注销“findOneAndUpdate.exec不是方法”。 奇怪的是,我正在以这种方式返回moongose方法。
我做错了什么?
答案 0 :(得分:0)
一旦我写完问题,我就知道问题是什么。函数名称" findOneAndUpdate"与findOneAndUpdate原始的mongoose函数崩溃。我更改了功能名称,我解决了问题!