You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NestJS集成Swagger调用createDocument报getVersioning非函数错误

问题现象
  • 重新安装@nestjs/swagger、swagger-ui-express依赖包,将项目所有依赖更新至最新版本,同步修改tsconfig.ts中metadata相关配置项后,服务运行报错
  • 调试确认SwaggerModule类的createDocument函数调用前所有代码运行正常,所有配置项可正确读取,一旦执行createDocument方法,API服务直接崩溃
  • 核心报错信息:applicationConfig.getVersioning is not a function at SwaggerExplorer.exploreRoutePathAndMethod
  • 完整错误堆栈:
/home/prasanna/my_project/TapisProject/API/API/node_modules/@nestjs/swagger/dist/swagger-explorer.js:125
        const controllerVersion = this.getVersionMetadata(metatype, applicationConfig.getVersioning());
                                                                                      ^
TypeError: applicationConfig.getVersioning is not a function
    at SwaggerExplorer.exploreRoutePathAndMethod (/home/prasanna/my_project/TapisProject/API/API/node_modules/@nestjs/swagger/dist/swagger-explorer.js:125:87)
    at /home/prasanna/my_project/TapisProject/API/API/node_modules/@nestjs/swagger/dist/swagger-explorer.js:72:45
    at Array.reduce ()
    at /home/prasanna/my_project/TapisProject/API/API/node_modules/@nestjs/swagger/dist/swagger-explorer.js:71:99
    at /home/prasanna/my_project/TapisProject/API/API/node_modules/lodash/lodash.js:13469:38
    at /home/prasanna/my_project/TapisProject/API/API/node_modules/lodash/lodash.js:4967:15
    at baseForOwn (/home/prasanna/my_project/TapisProject/API/API/node_modules/lodash/lodash.js:3032:24)
    at Function.mapValues (/home/prasanna/my_project/TapisProject/API/API/node_modules/lodash/lodash.js:13468:7)
    at MapIterator.iteratee (/home/prasanna/my_project/TapisProject/API/API/node_modules/@nestjs/swagger/dist/swagger-explorer.js:71:45)
    at MapIterator.next (/home/prasanna/my_project/TapisProject/API/API/node_modules/iterare/src/map.ts:9:39)
根因分析

@nestjs/swagger版本与NestJS核心包版本不匹配。高版本@nestjs/swagger的路由解析逻辑依赖@nestjs/core中ApplicationConfig实例的getVersioning()方法,更新依赖时如果仅升级swagger相关包,未同步升级@nestjs/common、@nestjs/core等NestJS核心套件,核心包中不存在该方法,就会触发上述类型错误。

修复步骤
  • 同步升级NestJS核心依赖到与当前@nestjs/swagger匹配的版本,根据自己使用的包管理器执行对应命令:
    • npm用户执行:npm install @nestjs/common@latest @nestjs/core@latest @nestjs/platform-express@latest
    • pnpm用户执行:pnpm add @nestjs/common@latest @nestjs/core@latest @nestjs/platform-express@latest
    • yarn用户执行:yarn add @nestjs/common@latest @nestjs/core@latest @nestjs/platform-express@latest
  • 如果升级后仍存在异常,先删除项目下的node_modules目录、对应包管理器的锁文件(package-lock.json/pnpm-lock.yaml/yarn.lock),重新执行全量依赖安装
  • 依赖安装完成后重启项目,swagger文档生成逻辑即可恢复正常

内容的提问来源于stack exchange,提问作者Prasanna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:57:30