首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这条快速路线返回200状态码,而代码要求返回500?

为什么这条快速路线返回200状态码,而代码要求返回500?
EN

Stack Overflow用户
提问于 2021-05-25 07:57:27
回答 1查看 1.5K关注 0票数 1

我有一条路线,它被删除以返回500个状态代码。

代码语言:javascript
运行
复制
/* 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的状态码。邮递员也是如此

那件事怎么可能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-25 08:54:56

根据速成API:https://expressjs.com/en/4x/api.html#res.status

在调用statussend之前,您需要调用json

代码语言:javascript
运行
复制
res.status(400).send('Bad Request')
res.status(500).json({ error: "Error, server connection refused" })

参考的例子,

所以把上面的片段改为,

代码语言:javascript
运行
复制
/* 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);
    }

})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67683890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档