如何设置或更改swagger 404响应类型

时间:2018-01-26 11:53:25

标签: 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)。

1 个答案:

答案 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){}