0

我对 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出现错误: 在此处输入图像描述

我怎样才能解决这个问题?

4

0 回答 0