数据库中不存在行时,Sequelize总是超时

我有一个获得与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这个获得超时,就像我使用的每一个其他的发现。

有人可以告诉我我做错了什么?

如果结果为空,则设置响应的状态,但不返回任何内容。

通常的做法是调用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"});