tsoa-swagger:文件参数在上传时始终未定义

tsoa-swagger: file parameter is always undefined in upload

我的 Tsoa nodejs 文件上传有问题

我写了基于tsoa documentation的方法,但输出变量总是未定义

这是我的方法

  @Post('/uploadNewExporterTemplate')
  public async uploadNewExporterTemplate(
    @Query() templateName: string,
    @Query() unit: string,
    @Query() testWith: string,
    @UploadedFile() file: Express.Multer.File,
  )  {

    const mul = multer()

    
    console.log(file,unit,testWith);
    
    return {stat:"Ok",ss:templateName}
  }

这是招摇的结果

最后是调试结果

我不确定为什么,但根据提供的 Swagger 屏幕截图 UI,您的 file 字段在 Request body 部分,但其余字段在 Parameters 部分。据我所知,所有字段都应该在一个名为 Request bodyParameters.

的部分中

我建议您尝试根据 tsoa docsQuery() 更改为 FormField()

如果以上没有帮助,我有几点建议:

  1. 检查生成的路由文件中的内容。应该是tsoa添加了一些multer逻辑。
  2. 将生成的 swagger.jsonthe one provided in the Swagger example 进行比较。
  3. 尝试 运行 Swagger UI 之外的请求(例如:Postman)或使用 DevTools 检查 Swagger UI 在幕后做了什么(网络选项卡,检查请求) .