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

Next.js集成Swagger UI遇Error: Cannot convert undefined or null to object

Next.js集成Swagger UI报错:Error: Cannot convert undefined or null to object

我正在给带API的Next.js项目集成Swagger UI,但模块返回错误:Error: Cannot convert undefined or null to object。已经严格按照next-swagger-doc的文档步骤操作,单独使用swagger-jsdoc也出现相同错误,推测问题出在swagger-jsdoc模块上。

以下是我的Swagger注释代码,供排查参考:

/**
* @swagger
* /api/user/users:
*   get:
*     summary: 获取指定学期/学年的用户列表,或默认获取当前活跃学期的用户
*     description: 如果指定学期和学年,返回对应学期的所有用户;未指定则返回当前活跃学期的用户。
*     parameters:
*       - in: query
*         name: semester
*         schema:
*           type: string
*         required: false
*         description: 要获取用户的学期(1或2)。
*       - in: query
*         name: year
*         schema:
*           type: string
*         required: false
*         description: 要获取用户的学年(例如:'2023')。
*     responses:
*       200:
*         description: 用户列表
*         content:
*           application/json:
*             schema:
*               type: array
*               items:
*                 type: object
*                 properties:
*                   id:
*                     type: string
*                   // Add other user properties here
*       400:
*         description: 学期或学年参数无效
*       404:
*         description: 未找到当前活跃学期
*       405:
*         description: 请求方法不允许
*       500:
*         description: 获取用户列表失败
*/

排查与解决方案

  • 移除非法注释:Swagger的YAML语法不支持JavaScript风格的//单行注释,代码中的// Add other user properties here会导致swagger-jsdoc解析YAML时出错,进而触发转换错误。建议直接删除该占位符,或改用YAML的#注释格式。
  • 检查YAML语法完整性:确保所有Swagger注释的缩进、结构完全符合YAML规范,比如每个层级的缩进一致,属性后都有冒号,没有未闭合的结构。
  • 补全Schema定义:200响应中的用户对象properties部分存在未完成的占位符,建议补全所有必要的用户属性定义,避免解析时出现空值/未定义的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:36:02