node.js - 如何设置或更改 swagger 404 响应类型

标签 node.js express http-status-code-404 swagger

我使用 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/

相关文章:

javascript - 安装 angularjs2 cli 时 npm 不工作 - “read ECONNRESET”

node.js - 部署到heroku : Invalid end points

http-status-code-404 - ngrok 中的 GET/favicon.icon 404 错误

node.js - MongoDb - 聚合 : How to $filter array documents with $elemMatch on a subdocument array?

node.js - 如何通过 ffmpeg 将 Node.js 中生成的 Canvas 流式传输到 youtube/任何其他 rtmp 服务器?

node.js - json-server 中间件未按预期工作

javascript - 无法解析模块说明符三

wordpress - 301 重定向不起作用 (WordPress) - [ URL 中带有 ?m=1 的 Probler ]

url - 没有 404 错误代码的更改域?

node.js - 是否有一个模块相当于 Python 的 argparse for node.js?