user.save不会运行回调函数

时间:2018-06-08 10:40:09

标签: javascript node.js database server sequelize.js

我试图将信息保存到我的数据库中的用户架构中。我正在使用" user.save"但由于某种原因,括号内的代码没有运行。

user.save(function(err) {
                    //THIS CODE DOESNT SEEM TO RUN 
                  if (err) {
                    console.log(err);
                  } else {
                    res.json({ message: 'given a reset-token' })
                  }
                  //
                });

所以我切换到以下代码,因为我需要从服务器获取成功消息:

  user.save((err) => {
            console.log('hello');
            if (err) {
              console.log(err);
              console.log('err2');
              res.status(404).json({ message: 'Save error' });
            }
          }).then(() => {
            res.status(201).json({ message: 'Activated' });
          });

当用户的更改被推送到数据库时,Witch成功向我发送状态代码。谁能解释为什么第二个有效,第一个无效?如果有更好的方法来编写这段代码?

1 个答案:

答案 0 :(得分:0)

好像你正在使用promises所以你可以使用.catch()来捕获错误

user
  .save()
  .then(() => {
    res.status(201).json({ message: "Activated" });
  })
  .catch(err => {
    console.log(err);
    console.log("err2");
    res.status(404).json({ message: "Save error" });
  });