【问题标题】:How to catch errors thrown from "FilesInterceptor" decorator如何捕获“FilesInterceptor”装饰器抛出的错误
【发布时间】:2021-12-12 15:35:58
【问题描述】:

我正在使用 NestJS @FilesInterceptor 解析多部分请求中的文件数组,这是我的使用方法:

@FilesInterceptor('files', 3, { some other options })

如果发送超过 3 个文件,我需要抛出一个特定的错误,但我得到的是客户端的套接字挂断

Error: socket hang up

这是服务器控制台中记录的错误:

Error: Unexpected end of multipart data

最后:服务器崩溃:(

那么,我怎样才能捕捉到这个错误来处理它并防止崩溃呢?

  • 它似乎不是HttpException 的实例,因此异常过滤器没有用。
  • 我可以在控制器中完成长度检查,但我需要{ some other options },所以我必须为maxCount 设置一个值

【问题讨论】:

    标签: express file-upload nestjs multer interceptor


    【解决方案1】:

    我发现了问题:服务器有一个全局拦截器,它为传入的请求实现超时。如果我删除它,则错误将正确解析为HttpException,客户端按预期获得BadRequest
    当我把它们放在一起时,我仍然很困惑为什么这不起作用......

    【讨论】:

    • 我已经通过将undefined 设置为maxCount 并计算控制器中的文件快速解决了这个问题,即使我想知道如何正确使用maxCount
    猜你喜欢
    • 2013-06-06
    • 2018-05-14
    • 1970-01-01
    • 2023-03-28
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多