我在nodejs服务器上获得了sequelize的用户:
router.get('/:id', function (req, res) {
models.user.find({
where: {
id: req.params.id
}
}).then(function (result) {
if (result === null) {
res.status(204);
} else {
res.status(200);
res.json(result);
}
});
});
当用户存在于数据库中时工作正常,但是当我使用不存在的id时,这会超时,就像我使用的其他所有查找一样。
有人可以告诉我,我做错了吗?
答案 0 :(得分:1)
如果您的结果为空,则设置响应的状态,但不要返回任何内容。
通常的方法是调用next()来结束路线:
router.get('/:id', function (req, res, next) {
models.Utilisateur.find({
where: {
id: req.params.id
},
include: [{model: models.Profil, include: [{model: models.Fonctionnalite}], through: {attributes: []}}]
}).then(function (result) {
if (result === null) {
res.status(204);
next();
} else {
res.status(200);
res.json(result);
}
});
});
或者你可以改为返回一个json对象。
res.json({error: "not found"});