簡體   English   中英

未達到異步瀑布的一部分

[英]Not reaching part of async waterfall

我正在嘗試第一次使用異步瀑布,並且遇到了一個問題,即我的功能尚未實現,並且正在使請求超時。

我已經包含了我要制造/使用的控制器的所有代碼。 我將console.log放置在似乎也無法訪問的位置。

到目前為止,其余代碼似乎都沒有錯誤地運行。 我已經做了很多次console.log,一切都很好。 我還檢查了數據庫,它是正確的結果。 唯一的問題是發送電子郵件部分,但這應該不是問題,因為我在同一文件中使用了相同的電子郵件發送功能,並且可以正常工作。 在此之前,我使用它來發送包含重置令牌的電子郵件。

exports.tokenPost = function(req, res, next) {

  let password = req.body.password;
  let password_confirm = req.body.password_confirm;

  if(password != password_confirm) return res.status(400).json({message: 'Error passwords don\'t match. Please make sure they match'});

  async.waterfall([
    function(done) {
      User
        .findOne({ resetPasswordToken: req.params.token })
        .where('resetPasswordExpires').gt(Date.now())
        .exec(function(err, user) {
          if(err){
            console.log(err);
          }
          if (!user) {
            return res.status(400).json({success: false, message: 'We can\'t find a user with that reset token. Please try resetting your password again or contact customer support.'});
          }

          user.password = password;
          // user.resetPasswordToken = undefined;
          // user.resetPasswordExpires = undefined;

          user.save(function(err) {
            if (err) console.log(err);
            if (err) return next(err);
          });
        });
    },
    function(user, done) {
      console.log('This code is not being run);
      let message = 'Hello,\n\n' + 'this is a confirmation that the password for your account ' + user.email + ' has just been changed.\n';
      sendEmail(`"Company Name" ${config.noreply}`, req.body.email, 'Password changed', message);
      res.status(200).json({success: true, message: 'Success your password has been changed.'});
    }
  ], function(err) {
    console.log(err);
    if (err) return next(err);

  });
};

我希望先發送電子郵件,然后再運行res.status.json以獲取所需的響應。

找出問題所在,使用異步瀑布並將您添加done作為函數的參數時,必須調用done才能調用下一個函數。 保存固定用戶后,我沒有致電完成。

也忘了,我只好打電話給郵件部分user.email相比req.body.email ,因為我沒有電子郵件作為我的表單上的字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM