当我在在线工具中使用swagger 3.0.1生成nodejs-server https://editor.swagger.io/并尝试 npm start
该项目我总是收到以下错误:
错误:找不到模块“./middleware/swagger.router”
最佳答案
短期修复:您可以让它运行,直到 oas3-tools 和 Smartbear(针对此服务器生成器)的维护者修复了各自的部分。
问题 A:oas3-tools 构建脚本未将“中间件”复制到“dist”目录。
要解决此问题:
- 启动生成的服务器(这将运行 npm install 并在
node_modules/oas3-tools
中创建dist
文件夹) - 进入
./node_modules/oas3-tools
并将缺少的src/middleware
手动复制到dist
文件夹。 - 现在您的
dist
文件夹中已有一个middleware
文件夹,请对其运行以下 typescript 编译命令:tsc dist/middleware/
问题B:
下一个问题是 swagger 文档路径上的拼写错误不正确。
要解决此问题:
- 在生成的服务器的 index.js 文件中,将字符串“api/openapi.yaml”更改为“api/swagger.yaml”
可能的额外问题:
您可能需要手动转译 .ts 文件。如果您也遇到此问题,请参阅下面@Alex 的评论(即错误 TS6053:找不到文件“dist/middleware/.ts”。发现 1 个错误
)
- Swagger 编辑器错误发布于此处:https://github.com/swagger-api/swagger-editor/issues/2086
- 此处发布了 Oas3-tools 错误:https://github.com/bug-hunters/oas3-tools/issues/17
关于node.js - Swagger 3.0.1 服务器生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59648179/