【问题标题】:how to return 404 and 200 in nodeJS azure storage?如何在 nodeJS azure 存储中返回 404 和 200?
【发布时间】:2020-10-15 23:22:13
【问题描述】:

如果 Azure 存储中的队列消息失败,我需要返回 404;如果创建消息,我需要返回 200

我有这个代码

app.post('/enviarconsulta', (req, res) => {
    var result;
    var queueSvc = azure.createQueueService('DefaultEndpointsProtocol=https;AccountName=telemedicinastorage;AccountKey=key;EndpointSuffix=core.windows.net');
    
    queueSvc.createMessage('turnosqueue12', JSON.stringify(req.body), function(error, results, response) {
        if (error) {
            console.log(error);
        };
    });

    res.status(200)
        .json({
            status: 'succes',
            data: result,
        });
});

但它总是返回 200,如果出现错误,我需要更改它

if (error) {

    console.log(error);
      
};

【问题讨论】:

    标签: node.js azure


    【解决方案1】:

    你只需要在createMessage函数的回调函数中响应即可。

    app.post('/enviarconsulta', (req, res) => {
        var result;
        var queueSvc = azure.createQueueService('DefaultEndpointsProtocol=https;AccountName=telemedicinastorage;AccountKey=key;EndpointSuffix=core.windows.net');
        
        queueSvc.createMessage('turnosqueue12', JSON.stringify(req.body), function(error, results, response) {
            if (error) {
                res.status(404).json({
                    status: 'error',
                    data: result,
                });
            } else {
                res.status(200).json({
                    status: 'succes',
                    data: result,
                });
            }
        });
    });
    

    【讨论】:

    • "Cannot POST /" (FRONTEND) 我的代码获取:function enviarConsulta(endpoint, jsonObj) { fetch(endpoint, { method: 'post', headers: { "Accept": "application/ json", "Content-Type": "application/json" }, body: jsonObj }).then(function (response) { if (!response.ok) { throw Error(response.statusText); } redirect('enviado '); }) .catch(function (error) { }); }
    • 好吧,这个Cannot POST / 表示你不是在发帖到/enviarconsulta,而是发到/ 并且你没有处理程序app.post('/', ... 这意味着endPoint 变量是/
    • 好吧,对不起,我是业余爱好者,但我不明白...我应该为 / 添加一个端点吗?或者会怎么样?你能用另一种方式向我解释一下吗
    • 变量端点包含这个“localhost:6420/enviarconsulta
    • 如果错误显示Cannot POST /,则表示您没有发布到/enviarconsulta,如果您说变量端点包含此“localhost:6420/enviarconsulta”,则从您显示的代码中我看不到其他事情。每个浏览器都有一个开发者工具,所以用它来查看你向服务器发出的请求。您将看到您发布到的地址。
    猜你喜欢
    • 2018-08-13
    • 2017-02-22
    • 2017-12-15
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2018-06-28
    相关资源
    最近更新 更多