node.js - tsoa-swagger:上传时文件参数始终未定义
问题描述
我对 Tsoa nodejs 文件上传有问题
我根据tsoa 文档编写了该方法,但输出变量始终未定义
这是我的方法
@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 body
or的部分中Parameters
。
我建议您尝试相应地更改Query()
为tsoa docs。FormField()
如果以上没有帮助,我有一些建议:
- 检查生成的路由文件中的内容。tsoa 应该添加了一些 multer 逻辑。
- 将您生成的内容
swagger.json
与Swagger 示例中提供的内容进行比较。 - 尝试在 Swagger UI 之外运行请求(例如:Postman)或使用 DevTools 来检查 Swagger UI 在引擎盖下的作用(网络选项卡,检查请求)。
推荐阅读
- html - 将一张图片移到另一张图片中
- ios - 单例及其在 swift 中的同步
- powershell - 具有 New-Object 的嵌套 OrderedDictionary 和数组数据结构
- r - 根据其他变量是否为 NA 创建具有值的变量
- python - “导入编码”是什么意思?
- json - 如何禁用 artifact-[build-no].json 文件的创建?
- javascript - 有没有办法在 ASP.NET Core 的控制器中读取由 JavaScript 代码创建的 cookie?
- python - Visual Studio Code:如何在新选项卡而不是新窗口中打开新的 Python 文件
- java - 如何使用调试外壳创建新变量
- r - 从 R 中下载和打开 xlsx 文件的问题