Mongoose - FindOneAndUpdate - 类型错误

时间:2017-09-10 19:55:41

标签: node.js typescript mongoose mongoose-schema

我在实施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方法。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

一旦我写完问题,我就知道问题是什么。函数名称" findOneAndUpdate"与findOneAndUpdate原始的mongoose函数崩溃。我更改了功能名称,我解决了问题!