我有一条路线,它被删除以返回500个状态代码。
/* Return all the users id */
router.post('/user/list', async function (req, res, next) {
const data = await scanAll(req.body.port, req.body.ip);
console.log("data ", data) //data 500
if (data === 500) {
res.json({
error: "Error, server connection refused"
}).status(500);
}
else if (data.length === 0) {
res.json(data).status(204)
} else {
res.json(data).status(200);
}
})它扫描一个redis服务器并返回数据。
嗯,我的前端收到了错误的json。但会收到200的状态码。邮递员也是如此

那件事怎么可能?
发布于 2021-05-25 08:54:56
根据速成API:https://expressjs.com/en/4x/api.html#res.status
在调用status或send之前,您需要调用json
res.status(400).send('Bad Request')
res.status(500).json({ error: "Error, server connection refused" })参考的例子,
所以把上面的片段改为,
/* Return all the users id */
router.post('/user/list', async function (req, res, next) {
const data = await scanAll(req.body.port, req.body.ip);
console.log("data ", data) //data 500
if (data === 500) {
res.status(500).json({
error: "Error, server connection refused"
});
}
else if (data.length === 0) {
res.status(204).json(data);
} else {
res.status(200).json(data);
}
})https://stackoverflow.com/questions/67683890
复制相似问题