我使用 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 的方法。
最佳答案
好的,我解决了。
我得到的响应不是来自swagger-node-runner或类似的,而是来自express使用的finalhandler模块。
所以我没有在我的服务器中处理 404 错误。
要处理 swagger-node 生成的项目中的 404,只需在中间件路径的末尾添加一个中间件,管理之前的中间件未捕获的所有查询。
app.use(function(req, res, next) {
return res.status(404).json({description: 'Page not found'});
})
(这可能是我的主要错误 - 我使用了带有四个参数的中间件 app.use(function(err, req, res, next) {}
关于node.js - 如何设置或更改 swagger 404 响应类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48460872/