我在下面的代码中有一个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上却不能工作:/
答案 0 :(得分:3)
回调原型/签名错误,应该像这样:
app.get('/users', function(req, res) { ... })
在您的示例中,您尝试呼叫req.json
,该电话不存在。
希望有帮助,
最好的问候
编辑
如果您不希望使用req
,则不能删除它,因为Express希望它存在,因此他将使用3个常用参数来调用您的匿名函数:req
,res
和next
。
Express无法猜测您希望res
作为函数的第一个参数。
但是,如果您希望其他人知道您不会使用此变量,则可以执行以下操作:
app.get('/users', function(_, res) { ... })
OR
app.get('/users', function(_req, res) { ... })
如果下划线没有其他含义,则在无用的变量前加上下划线是一种可接受的做法。如果您使用 underscore.js 或 lodash
,请不要这样做