我对 SwaggerJSDoc 有疑问。我已经安装了它并遵循了文档(参考:https ://github.com/Surnet/swagger-jsdoc )。
这是我的配置文件:
const swaggerJsdoc = require("swagger-jsdoc");
const options = {
definition: {
openapi: "3.0.0",
info: {
title: "Hello World",
version: "1.0.0",
},
},
apis: ["./src/**/docs/*.yaml"],
explorer: true,
};
const openapiSpecification = swaggerJsdoc(options);
在我的/src
文件夹中,我放置了一些名为的嵌套文件夹docs
,其中包含.yaml
描述各种 api 的文件。如果我console.log
保持不变,我可以看到所有这些文件的内容,openapiSpecification
以便该部分正常工作。
这是我app.ts
归档的地方:
import { Router } from "express";
import { IExpress, Express } from "./config/express";
process.env.MONGO_URI =
process.env.MONGO_URI ||
"";
process.env.PORT = "3000";
const express = require("express");
const swaggerJSDoc = require("swagger-jsdoc");
const swaggerUi = require("swagger-ui-express");
const port = process.env.PORT;
const expressServer: IExpress = new Express();
export const router: Router = express.Router();
const expressApp = expressServer.app;
const server = require("http").Server(expressApp);
import "../modules/instruments/expressController/instrumentsController";
import "../modules/strategies/expressController/strategyController";
const initRoutes = () => {
expressApp.use(router);
expressApp.use("/docs", swaggerUi.serve, swaggerUi.setup(swaggerJSDoc));
};
export const start = (connections: any) => {
expressApp.use(expressServer.handleErrors);
initRoutes();
server.listen(port, async () => {
Express.consoleLogMessage(port, connections);
});
};
export const shutdown = () => {
return new Promise<void>((resolve) => {
console.info("Closing app");
server.unref();
server.close(() => {
console.info("App closed");
resolve();
});
});
};
问题是,当我运行服务器时,localhost:3000/docs
出现错误:
我怎样才能解决这个问题?