尽管有db.insert函数,数据库仍未更新

时间:2018-10-03 01:25:58

标签: javascript node.js express npm knex.js

我正在使用快递应用程序请求节点邮件程序包来制作忘记密码的功能,该程序将新密码发送到用户的电子邮件,然后使用新密码更新数据库,但是问题是数据库未使用新密码我已经检查了很多遍代码,但是无法找出问题所在。

`app.post('/forgot', (req, res) => {
  const { email } = req.body;
  let newPassword = generatePassword();
  db.select('*').from('login')
  .where('email', '=', email)
  .returning('*')
  .then(user => {
    if (user.length > 0) {
      let mailOptions = {
        from: 'haroonrmit@gmail.com', 
        to: `${email}`, 
        subject: 'Password reset', 
        html: `<p>Your new password is ${newPassword}</p>`
      };
      transporter.sendMail(mailOptions);
      db('login')
      .where({email: user[0].email})
      .update({
        password: newPassword
      })
      res.json(user[0]);
    } else {
      res.status(404).json('email not found');
    }
  })
});`

1 个答案:

答案 0 :(得分:1)

您没有在第二个查询中调用.then,因此它已构建但从未运行。

此外,您的http返回一个值,然后它知道更新是否成功执行。