Node.js Nodjs-swagger自动发电机集成

Node.js Nodjs-swagger自动发电机集成,node.js,swagger-codegen,Node.js,Swagger Codegen,我需要使用NodeJS开发一个API,还需要为API开发文档。我与swagger auto gen集成以创建swagger.json。但是如果我使用routes.js,swagger.json不能正确生成,如下所示 var express = require('express'); module.exports = function(app) { var userController = require('../controller/userController'); var apiRo

我需要使用NodeJS开发一个API,还需要为API开发文档。我与swagger auto gen集成以创建swagger.json。但是如果我使用routes.js,swagger.json不能正确生成,如下所示

var express = require('express');

module.exports = function(app) {
var userController    = require('../controller/userController');
var apiRouter = express.Router();
var routerV1 = express.Router();
var routerV2 = express.Router();

app.use('/admin', apiRouter);
apiRouter.use("/v1", routerV1);
apiRouter.use("/v2", routerV2);

routerV1.route('/users').get(userController.getUsersV1);    
routerV2.route('/users').get(userController.getUsersV2);
 
}

并在swagger.js中映射了这些routes.js

const swaggerAutogen = require('swagger-autogen')();
const outputFile = './swagger_output.json';
const endpointsFiles = ['./routes.js']; // root file where the route starts.

swaggerAutogen(outputFile, endpointsFiles).then(() => {
    require('./index.js');           // Your project's root file
})
请建议生成swagger.js的最佳方法

const swaggerAutogen = require('swagger-autogen')();
const outputFile = './swagger_output.json';
const endpointsFiles = ['./routes.js']; // root file where the route starts.

swaggerAutogen(outputFile, endpointsFiles).then(() => {
    require('./index.js');           // Your project's root file
})

是否需要为所有控制器创建路由文件?

斯威格autogen第2版添加了此功能。以前的版本不识别路由。在您的情况下,生成文件swagger.js和其他文件的最佳方法是:

文件:swagger.js

const swaggerAutogen = require('swagger-autogen')();
const outputFile = './swagger_output.json';
const endpointsFiles = ['./routes.js']; // root file where the route starts.

swaggerAutogen(outputFile, endpointsFiles).then(() => {
    require('./index.js');           // Your project's root file
})
将模块更新至最新版本

并使用:node swagger.js运行您的项目

const swaggerAutogen = require('swagger-autogen')();
const outputFile = './swagger_output.json';
const endpointsFiles = ['./routes.js']; // root file where the route starts.

swaggerAutogen(outputFile, endpointsFiles).then(() => {
    require('./index.js');           // Your project's root file
})
关于所有控制器的路由文件,这是可能的,但取决于您的API正在解决的问题,然而,swagger autogen并没有限制这一点。我希望它能帮助你。如果您需要:

我建议引用相关信息,链接到文档不是令人满意的答案;请改进您的答案,以更好地帮助社区。完成,dhj。非常感谢。