未达到异步瀑布的一部分

时间:2019-02-18 23:37:41

标签: javascript node.js async-await async.js

我正在尝试第一次使用异步瀑布,并且遇到了一个问题,即我的功能尚未实现,并且正在使请求超时。

我已经包含了我要制造/使用的控制器的所有代码。我将console.log放置在似乎也无法访问的位置。

到目前为止,其余代码似乎仍在运行,没有错误。我已经做了很多次console.log,一切都很好。我还检查了数据库,它是正确的结果。唯一的问题是发送电子邮件部分,但这应该不是问题,因为我在同一文件中使用了相同的电子邮件发送功能,并且可以正常工作。在此之前,我使用它来发送包含重置令牌的电子邮件。

aa <- BaseTeste2019 %>%
  select(Fenabrave, a, b, c, d, e) %>%
  group_by(Fenabrave) %>%
  summarise(a = sum(a), b = sum(b), c = sum(c), d = sum(d), e = sum(e))

我希望先发送电子邮件,然后再运行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); }); }; ,使我得到所需的答复。

1 个答案:

答案 0 :(得分:0)

找出错误的原因,使用异步瀑布,然后将list_all = list_one * n添加为函数的参数,必须调用done才能调用下一个函数。保存固定用户后,我没有致电完成。

done相比,我也忘记了必须调用user.email的电子邮件部分,因为我的表单中没有电子邮件作为字段。