【问题标题】:Web Client not receiving 404 when sent from nodejs从nodejs发送时Web客户端未收到404
【发布时间】:2019-07-09 11:44:37
【问题描述】:

当收到对不存在记录的请求时,我正在尝试将 404 状态发送回 Web 客户端。

我正在使用 Express 和 MongoDB。使用 Advanced Rest Client 测试。

代码:

app.get('/api/courses/:id', (req, res) => 
{
    dbo.collection("courses").findOne({ id: parseInt(req.params.id) }, function(err, result) {
        console.log(result);
        if (err) return res.status(400).send(err);
        if (!result) { console.log('Null result sending 404'); return res.status(404); }
        res.send(result);
    });
});

如果客户端发送了一个有效的 id: 则记录按预期返回。

节点控制台:

{ _id: 5d23e6a8c922d263376442c1, id: 1, name: 'Course 1' }

客户:

    {
    "_id": "5d23e6a8c922d263376442c1",
    "id": 1,
    "name": "Course 1"
    }

当客户端发送无效 id 时:控制台显示消息已发送,但客户端一直等待,直到我停止/重置服务器。

节点控制台:

null
Null result sending 404

【问题讨论】:

    标签: node.js


    【解决方案1】:

    因为您只是为响应设置了状态,但您从未向客户端发送任何内容。

    让我们向客户发送一些东西。

    例如,发送一个json对象

    return res.status(404).json({message: 'Null result sending 404'});
    

    而不是return res.status(404);

    【讨论】:

    • 如答案或 res.status(404).send('Null ...'); 中所述;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 2019-12-02
    • 1970-01-01
    • 2022-01-12
    • 2015-09-25
    • 1970-01-01
    • 2020-12-25
    相关资源
    最近更新 更多