Node.js 使用无服务器express app中的swagger多次重定向到swagger端点

Node.js 使用无服务器express app中的swagger多次重定向到swagger端点,node.js,express,swagger,serverless,Node.js,Express,Swagger,Serverless,我正在用express serverless制作一个应用程序,我想在离线开发期间使用swagger jsdoc和swagger ui express。 这是我对swagger的配置: const express = require('serverless-express/express'); const router = express.Router(); const options = { swaggerDefinition: { info: {

我正在用express serverless制作一个应用程序,我想在离线开发期间使用swagger jsdoc和swagger ui express。 这是我对swagger的配置:

const express = require('serverless-express/express');
const router = express.Router();

const options = {
    swaggerDefinition: {
        info: {
            title: 'REST - Swagger',
            version: '1.0.0',
            description: 'REST API with Swagger doc',
            contact: {
                email: 'me@someemail.com'
            }
        },
        tags: [
            {
                name: 'Stuff',
                description: 'Stuff API'
            }
        ],
        schemes: ['http'],
        host: 'localhost:9002',
        basePath: '/docs'
    },
    apis: ['./**/route.js']
}

const swaggerJSDoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');
const swaggerSpec = swaggerJSDoc(options);
require('swagger-model-validator')(swaggerSpec);

router.get('/api-docs.json', function (req, res) {
    res.setHeader('Content-Type', 'application/json');
    res.send(swaggerSpec);
})

router.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));

function validateModel(name, model) {
    const responseValidation = swaggerSpec.validateModel(name, model, false, true)
    if (!responseValidation.valid) {

        console.error(responseValidation.errors);
        throw new Error(`Some error`)
    }
}

module.exports = {
    router,
    validateModel
}
在handler.js文件中:

// ... some imports and code
app.use("/", index);
// ... others routes

// Swagger
app.use("/docs", swagger.router); // <-- it refers to the configuration above 

exports.handler = handler(app);
/。。。一些导入和代码
应用程序使用(“/”,索引);
// ... 其他路线
//昂首阔步

应用程序使用(“/docs”,swagger.router);// 我发现这个替代方案:

  • 我在网站上下载了大摇大摆的用户界面

  • 将dist文件夹复制到express应用程序中的“我的公用文件夹”

  • 将文件夹名称“dist”更改为“api文档”

  • 并在“api文档”文件夹中的index.html内更改行

    url=“”

  • 致:

    现在当我访问
    我可以看到大摇大摆的用户界面工作正常

    我发现这个替代解决方案:

  • 我在网站上下载了大摇大摆的用户界面

  • 将dist文件夹复制到express应用程序中的“我的公用文件夹”

  • 将文件夹名称“dist”更改为“api文档”

  • 并在“api文档”文件夹中的index.html内更改行

    url=“”

  • 致:

    现在当我访问 我可以看到大摇大摆的用户界面工作正常

    url: "http://localhost:9002/api-docs.json",