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

Node.js 如何设置或更改swagger 404响应类型,node.js,express,http-status-code-404,swagger,Node.js,Express,Http Status Code 404,Swagger,我使用招摇过市节点()生成了一个应用程序。我正在使用招摇过市验证器查找验证错误。它工作正常,我正在捕获错误并将其更改为我喜欢的响应格式 我还想处理404错误并返回我自己的响应。当提供不存在页面的URL时,Swagger会返回自动响应,我想将其更改为我的响应 昂首阔步的回答: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Error</ti

我使用招摇过市节点()生成了一个应用程序。我正在使用招摇过市验证器查找验证错误。它工作正常,我正在捕获错误并将其更改为我喜欢的响应格式

我还想处理404错误并返回我自己的响应。当提供不存在页面的URL时,Swagger会返回自动响应,我想将其更改为我的响应

昂首阔步的回答:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /fhello</pre>
</body>
</html>

错误
无法获取/fhello
我正在寻找将其更改为JSON的方法。

好的,我解决了它

我得到的响应不是来自swagger node runner或类似的,而是来自express使用的finalhandler模块

所以我没有处理服务器中的404错误

要在swagger节点生成的项目中处理404,只需在中间件路径的末尾添加一个中间件,管理以前的中间件未捕获的所有查询


(我的主要错误可能是什么?我使用的中间件有四个参数app.use(function(err,req,res,next){}

当您收到404错误时,请将错误放在控制台上condition@ManjeetThakur我不理解这种方法。当抛出错误时,我无法访问它,因为在它到达我的任何控制器之前,它是在swagger项目的路由器中以某种方式进行管理的。请将您的代码粘贴到此处,以便我能理解它。这是一个使用swag生成的代码ger express mw。我正在访问swagger.yaml中未指定的路径。它会给我一些默认的“HTML/text”响应,我正在寻找返回JSON的方法。(到目前为止,我放弃了自动路由,然后有了这种可能性,但我正在寻找一种方法,在使用swagger路由器时进行此操作)
swagger-express-mw
是围绕
swagger-node-runner
的一个快速中间件包装器。如果您实际将其用作中间件,那么您肯定也有自己的代码?
  app.use(function(req, res, next) {
      return res.status(404).json({description: 'Page not found'});
  })