NodeJs表达错误中间件解析

时间:2018-08-15 18:23:58

标签: javascript node.js express

我正在尝试编写一个中间件来处理错误。但是我不知道如何将正确的格式发送到前端。在下面,我将列出我的所有尝试,希望对您有所帮助。

尝试1

app.use(function(err, req, res, next) {
    const formatted = err;
    res.send(formatted)
});

邮递员结果

  

{“代码”:422}

尝试2

app.use(function(err, req, res, next) {
    const formatted = `${err}`;
    res.send(formatted)
});

结果(邮递员)

  

错误:请求返回的错误代码:422和正文:{“ status”:422,“ title”:“显示名称:build_id已在该产品上使用。”,“ type”:“ {{3} }“,”错误“:{” display_name“:”显示名称:build_id已经在该产品上使用。“}}

那是我想要的数据,但是我需要在json中

问题字符串内插后为什么还会显示更多数据?如何将其格式化为json?

2 个答案:

答案 0 :(得分:0)

如果我不得不猜测,您可能正在寻找res.json(err)

https://expressjs.com/en/api.html#res.json

编辑:完整示例:

app.use(function(err, req, res, next) {
    if (err) res.json(err)
});

答案 1 :(得分:-1)

您可以通过这种方式完成

app.use(function(err, req, res, next) {
    if (err) {
        res.json({
            status: "error",
            error: `${err}` // <-- edited
        });
    } else {
        next();
    }
});