gpt4 book ai didi

node.js - 当数据库中不存在行时,Sequelize 总是超时

转载 作者:太空宇宙 更新时间:2023-11-04 00:30:39 26 4
gpt4 key购买 nike

我在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"});

关于node.js - 当数据库中不存在行时,Sequelize 总是超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41057465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com