【问题标题】:How to limit the stack trace of my node.js Swagger server?如何限制我的 node.js Swagger 服务器的堆栈跟踪?
【发布时间】:2019-04-19 19:40:45
【问题描述】:

如何限制我的堆栈跟踪? 事实上,在我的 json swagger 文件中,我定义了一个其字段对应于枚举的对象。

问题:当我输入一个与我的枚举不匹配的字符串时。服务器响应提供了太多信息。我想删除或限制我的堆栈跟踪响应。怎么做?

我的 yaml 招摇:

{
    "name": "sort",
    "in": "query",
    "description": "The type of sort we want",
    "required": false,
    "type": "string",
    "enum": [ "ASC", "DESC" ] 
}

当我使用 sort=abcd 发送 Http get 时我的 http 响应

错误:参数(排序)不是允许的值(ASC,DESC):abcd
            
  在 throwErrorWithCode (/usr/src/app/node_modules/swagger-tools/lib/validators.js:116:13)
  在 module.exports.validateEnum (/usr/src/app/node_modules/swagger-tools/lib/validators.js:248:5)
  在 Object.module.exports.validateSchemaConstraints (/usr/src/app/node_modules/swagger-tools/lib/validators.js:629:5)
  在 validateValue (/usr/src/app/node_modules/swagger-tools/middleware/swagger-validator.js:119:16)
  在 /usr/src/app/node_modules/swagger-tools/middleware/swagger-validator.js:379:21
  在 /usr/src/app/node_modules/async/dist/async.js:1135:9
  在 eachOfArrayLike (/usr/src/app/node_modules/async/dist/async.js:1069:9)
  在 eachOf (/usr/src/app/node_modules/async/dist/async.js:1117:5)
  在 _asyncMap (/usr/src/app/node_modules/async/dist/async.js:1133:5)
  在 Object.map (/usr/src/app/node_modules/async/dist/async.js:1122:16)

我使用服务器节点 js。

也许我必须配置我的 package.json ???

"scripts": {
      "prestart": "npm install",
      "start": "node index.js",
      "test": "jest --coverage"
 },

【问题讨论】:

标签: javascript node.js json swagger stack-trace


【解决方案1】:

您可以尝试在您的代码中设置Error.stackTraceLimit = 10; 或任何您想要的行数。

【讨论】:

  • 它没有任何改变,因为我使用了 swaggerTools 并且 stackTrace 来自 swagger 而不是来自我的代码。
  • 是的,你可以,你可以把它放在你index.js的初始化中。
  • Marcoiz 解决方案对我来说效果很好。对于那些出于安全原因希望完全抑制堆栈跟踪输出的人,在我的 Swagger-Tools 的 index.js 中将 Error.stackTraceLimit = 0 包装在仅限生产的开关中对我来说效果很好。现在我可以通过 Swagger 回调()发送错误/403,而不会泄露任何路径信息。美丽的!谢谢!
猜你喜欢
  • 2017-08-13
  • 1970-01-01
  • 2012-03-22
  • 2012-05-15
  • 1970-01-01
  • 2023-02-17
  • 2021-02-25
  • 2011-05-22
  • 2021-09-28
相关资源
最近更新 更多