【问题标题】:Nestjs Swagger UnhandledPromiseRejectionWarning: TypeError: Cannot destructure property `prototype` of 'undefined' or 'null'Nestjs Swagger UnhandledPromiseRejectionWarning:TypeError:无法解构“未定义”或“空”的属性“原型”
【发布时间】:2025-12-15 06:20:04
【问题描述】:

我正在开发一个 Nestjs REST API 项目,我必须在其中添加招摇。我以这个 repo 为例:https://github.com/nestjs/nest/tree/master/sample/11-swagger

但我收到此错误: UnhandledPromiseRejectionWarning: TypeError: Cannot destructure property 'prototype' of 'undefined' or 'null' 和这个: UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block or by rejecting a promise which was not handled with .catch(). 项目在这里:
https://github.com/strdr4605/nestjs-rest-api/blob/swagger/src/main.ts

【问题讨论】:

  • 我在示例项目中使用了您的 main.ts 文件,它工作正常。问题一定出在其他地方,也许是您的控制器之一?还可以尝试重新安装和更新您的依赖项,永远不会受到伤害。
  • @KimKern,是的,我在控制器/服务中犯了一个错误。不确定,但可能是因为我在控制器和服务的 PUT/DELETE 方法中使用 ObjectID 作为 id 类型。改为字符串类型。
  • 很高兴听到它现在正在工作。 :-) 考虑删除您的问题或添加一个答案(标记为已解决),描述您为解决问题所做的工作。此外,在您的帖子中包含代码的相关部分总是好的,而不是只是链接到它。链接将来可能会停止工作。
  • 我有类似的东西,使用 Express 的请求和响应,我在尝试使用 NestJs Swagger 模块响应未定义时使用如下装饰器:方法(@Res() res: Response)。

标签: javascript typescript swagger nestjs


【解决方案1】:

swagger 的配置没问题。不确定,但可能是因为我在控制器和服务的 PUT/DELETE 方法中使用 ObjectID 作为 id 类型。更改为字符串类型,一切正常。

【讨论】:

    【解决方案2】:

    我在 Swagger 尝试在事件控制器中解析 Kafka 消息的负载时遇到问题,因此我添加了 ApiExcludeEndpoint 以排除消息处理程序

    @ApiExcludeEndpoint()
    @EventPattern('topic', Transport.KAFKA)
    public async handleEvent(@Payload() message: EventDto): Promise<void> {
    // ...
    

    【讨论】:

      最近更新 更多