Node.js和Sequelize:在findAll上使用res.json吗?

时间:2018-07-25 13:32:05

标签: node.js sequelize.js

我在下面的代码中有一个Res.json的问题:

 /* GET all users */
  app.get('/users', function (res) {
    db.users.findAll()
      .then(users => {
        res.json(users);
      });
  });

它在今天工作得很好,但是现在不行了。我只有使用findAll ...的app.get才对所有res.json有此错误...

Unhandled rejection TypeError: res.json is not a function

我不明白为什么res.json在我所有的功能中都能正常工作,但在findAll上却不能工作:/

1 个答案:

答案 0 :(得分:3)

回调原型/签名错误,应该像这样:

app.get('/users', function(req, res) { ... })

在您的示例中,您尝试呼叫req.json,该电话不存在。

希望有帮助,
最好的问候

编辑

如果您不希望使用req,则不能删除它,因为Express希望它存在,因此他将使用3个常用参数来调用您的匿名函数:reqresnext
Express无法猜测您希望res作为函数的第一个参数。

但是,如果您希望其他人知道您不会使用此变量,则可以执行以下操作:

app.get('/users', function(_, res) { ... })

OR

app.get('/users', function(_req, res) { ... })

如果下划线没有其他含义,则在无用的变量前加上下划线是一种可接受的做法。如果您使用 underscore.js lodash

,请不要这样做