始终从ExpressJS默认错误处理程序返回JSON数据

时间:2018-10-10 11:16:40

标签: javascript node.js express

我正在使用ExpressJS构建API服务器。我想确保服务器始终以JSON数据而不是HTML数据响应。对于我定义的所有自定义路由,我可以使服务器使用JSON数据进行响应。

但是,如果出现诸如“找不到页面(404)”或“内部服务器错误(500)”之类的错误,则服务器将以HTML内容进行响应。是否有任何内置配置设置可允许以JSON格式做出这些响应?

我可以为此定义自定义错误处理程序,但是我希望使用内置错误处理程序的功能,例如隐藏基于NODE_ENV的堆栈跟踪。

1 个答案:

答案 0 :(得分:3)

根据快速文档,您可以像这样处理每个404和500服务器错误,以发送json(或您喜欢的任何其他响应)

发送404作为json响应,

app.get('*', function(req, res){
    res.status(404).json({}); // <== YOUR JSON DATA HERE
});

对于500内部服务器错误

app.use(function (err, req, res, next) {
    console.error(err.stack)
    res.status(500).json({}) // <== YOUR JSON DATA HERE
})

希望有帮助!

请遵循这些参考信息以获取更多信息

相关问题