我使用 swagger-node (https://github.com/swagger-api/swagger-node)生成了一个应用。我正在使用 swagger验证器来查找验证错误。它工作正常,我正在捕捉错误并将其更改为我更喜欢的响应格式。
我也想处理404错误并返回我自己的回复。当提供不存在的页面的URL时,Swagger会返回自动响应,我想将其更改为我的回复。
Swagger回应:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /fhello</pre>
</body>
</html>
我正在寻找改变它的方式(到JSON)。
答案 0 :(得分:1)
好的,我解决了。
我得到的回复不是来自 swagger-node-runner 或类似,而是来自快递使用的 finalhandler 模块。
所以我在服务器上没有处理404错误。
要处理由swagger-node生成的项目中的404,只需在中间件路径的末尾添加一个中间件,管理以前的中间件未捕获的所有查询。
app.use(function(req, res, next) {
return res.status(404).json({description: 'Page not found'});
})
(可能是我的主要错误 - 我使用的是一个带有四个参数app.use的中间件(函数(错误,req,res,next){}