我正在使用ExpressJS构建API服务器。我想确保服务器始终以JSON数据而不是HTML数据响应。对于我定义的所有自定义路由,我可以使服务器使用JSON数据进行响应。
但是,如果出现诸如“找不到页面(404)”或“内部服务器错误(500)”之类的错误,则服务器将以HTML内容进行响应。是否有任何内置配置设置可允许以JSON格式做出这些响应?
我可以为此定义自定义错误处理程序,但是我希望使用内置错误处理程序的功能,例如隐藏基于NODE_ENV的堆栈跟踪。
答案 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
})
希望有帮助!
请遵循这些参考信息以获取更多信息