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 body
或 Parameters
.
的部分中
我建议您尝试根据 tsoa docs 将 Query()
更改为 FormField()
。
如果以上没有帮助,我有几点建议:
- 检查生成的路由文件中的内容。应该是tsoa添加了一些multer逻辑。
- 将生成的
swagger.json
与 the one provided in the Swagger example 进行比较。
- 尝试 运行 Swagger UI 之外的请求(例如:Postman)或使用 DevTools 检查 Swagger UI 在幕后做了什么(网络选项卡,检查请求) .
我的 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 body
或 Parameters
.
我建议您尝试根据 tsoa docs 将 Query()
更改为 FormField()
。
如果以上没有帮助,我有几点建议:
- 检查生成的路由文件中的内容。应该是tsoa添加了一些multer逻辑。
- 将生成的
swagger.json
与 the one provided in the Swagger example 进行比较。 - 尝试 运行 Swagger UI 之外的请求(例如:Postman)或使用 DevTools 检查 Swagger UI 在幕后做了什么(网络选项卡,检查请求) .