node配置swagger

安装swagger

npm install swagger-jsdoc swagger-ui-express

创建 ``swagger.js`` 配置文件

javascript 复制代码
const path = require('path');
const express = require('express');
const swaggerUI = require('swagger-ui-express');
const swaggerJsDoc = require('swagger-jsdoc'); // 修改 `swaggerDoc` 为 `swaggerJsDoc`

// 配置 swagger-jsdoc 选项
const options = {
    definition: {
        openapi: '3.0.0',
        info: {
            title: '企业管理后台API文档', // 标题信息
            version: '1.0.0',
            description: '企业级管理后台共用接口API文档',
        },
    },
    // 去指定路由下收集 swagger 注释
    apis: [ './routers/*.js'], // 注意路径是否正确
};

// 使用 swaggerJsDoc 生成规范的 swaggerSpec
const swaggerSpec = swaggerJsDoc(options);

// 定义 `swaggerJson` 方法,用于返回 swagger 文档的 JSON 数据
const swaggerJson = function (req, res) {
    res.setHeader('Content-Type', 'application/json');
    res.send(swaggerSpec);
};

// 定义 `swaggerInstall` 方法,用于将 swagger 安装到应用中
const swaggerInstall = function (app) {
    if (!app) {
        app = express(); // 如果没有传入 app,则创建一个新的 express 实例
    }

    // 开放 JSON 格式的文档接口
    app.get('/swagger.json', swaggerJson);

    // 使用 swaggerSpec 生成 swagger 文档页面,并开放在指定路由 '/swagger'
    app.use('/swagger', swaggerUI.serve, swaggerUI.setup(swaggerSpec));
};

// 导出 `swaggerInstall` 方法供其他模块使用
module.exports = swaggerInstall;

设置 Swagger 注释规范

javascript 复制代码
/**
 * @swagger
 * /users:
 *   get:
 *     summary: Retrieve a list of users
 *     responses:
 *       200:
 *         description: A list of users
 *         content:
 *           application/json:
 *             schema:
 *               type: array
 *               items:
 *                 type: object
 *                 properties:
 *                   id:
 *                     type: integer
 *                     example: 1
 *                   name:
 *                     type: string
 *                     example: John Doe
 */
app.get('/users', (req, res) => {
  res.json([
    { id: 1, name: 'John Doe' },
    { id: 2, name: 'Jane Doe' },
  ]);
});

配置 Swagger UI

在主应用文件(如app.js)中配置Swagger UI中间件:

javascript 复制代码
const express=require('express')
const app=express()
const cors=require('cors')
const bodyParser=require('body-parser')
const menu=require('./routers/menu')
const main=require('./routers/main')
const area =require('./routers/area')
const upload =require('./routers/upload')
const user=require('./routers/user')
const swaggerInstall = require('./utils/swagger')// 引入swagger
app.use(express.static('./data/upload'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}));
app.use(cors());
app.use('/api/menu',menu)
app.use('/api/main',main)
app.use('/api/area',area)
app.use('/api/upload',upload)
app.use('/api/user',user)
swaggerInstall(app) // 注册swagger
app.use(function(err,req,res,next){
    console.info(err.stack)
    res.status('500').send('服务端出错了')
})

app.listen('3030',function(){
    console.log('服务器正在监听3030端口')
})

启动node服务

node app.js 具体看自己配置node启动命令是啥

启动访问设置地址+/swager/

相关推荐
摘星编程37 分钟前
React Native + OpenHarmony:UniversalLink通用链接
javascript·react native·react.js
qq_177767371 小时前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos
烬头88211 小时前
React Native鸿蒙跨平台应用实现了onCategoryPress等核心函数,用于处理用户交互和状态更新,通过计算已支出和剩余预算
前端·javascript·react native·react.js·ecmascript·交互·harmonyos
程序员清洒3 小时前
Flutter for OpenHarmony:Text — 文本显示与样式控制
开发语言·javascript·flutter
雨季6663 小时前
Flutter 三端应用实战:OpenHarmony 简易“动态内边距调节器”交互模式深度解析
javascript·flutter·ui·交互·dart
天人合一peng3 小时前
Unity中button 和toggle监听事件函数有无参数
前端·unity·游戏引擎
会飞的战斗鸡4 小时前
JS中的链表(含leetcode例题)
javascript·leetcode·链表
方也_arkling4 小时前
别名路径联想提示。@/统一文件路径的配置
前端·javascript
毕设源码-朱学姐4 小时前
【开题答辩全过程】以 基于web教师继续教育系统的设计与实现为例,包含答辩的问题和答案
前端
qq_177767374 小时前
React Native鸿蒙跨平台剧集管理应用实现,包含主应用组件、剧集列表、分类筛选、搜索排序等功能模块
javascript·react native·react.js·交互·harmonyos