问题描述
我有一个端点,可让我上传不同类型的体育比赛的统计信息并选择类型。现在,我只能上传曲棍球比赛的统计文件,这就是为什么只有一项添加到选择项的原因。因此,我附加了统计文件,然后按执行按钮,因为选择项只有一项。但是,请求不会通过招摇发送到我的后端。我可以看到选择的边框是红色,出现了问题,但是什么呢?
我会说在创建此问题之前,我正在研究关于stackoverflow和此处的各种问题。不幸的是,我找不到解决方案。我通读了文档,但结果是一样的。
因此,尽管选择内容现在只有一项,但我希望我能够向后端发送请求以上传统计信息而没有任何问题。
控制器代码:
import {Controller,Post,UseInterceptors} from '@nestjs/common';
import {
ApiBody,ApiCreatedResponse,ApiConsumes,} from '@nestjs/swagger';
import {FileInterceptor} from "@nestjs/platform-express";
import { AppService } from './app.service';
import { SportDto } from './sport.dto';
import { ResponseDto } from './response.dto';
@Controller('sports')
export class AppController {
constructor(private readonly appService: AppService) {}
@Post()
@ApiCreatedResponse({
type: ResponseDto,})
@ApiConsumes('multipart/form-data')
@ApiBody({
type: SportDto,})
@UseInterceptors(FileInterceptor('file'))
postHello() {
return {
message: 'Success',};
}
}
体内dto代码:
import {ApiProperty} from "@nestjs/swagger";
import {TypeSportEnum} from "./type-sport.enum";
export class SportDto {
@ApiProperty({ enum: TypeSportEnum })
typeSport: TypeSportEnum;
@ApiProperty({ type: 'string',format: 'binary' })
stats: any;
}
枚举代码:
export enum TypeSportEnum {
HOCKEY = 'HOCKEY',}
main.ts代码:
import { nestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { DocumentBuilder,SwaggerModule } from '@nestjs/swagger';
async function bootstrap() {
const app = await nestFactory.create(AppModule);
const options = new DocumentBuilder().setVersion('1.0').build();
const document = SwaggerModule.createDocument(app,options);
SwaggerModule.setup('api',app,document);
await app.listen(3000);
}
bootstrap();
以下是有关我的环境的信息:
nest version: 7.5.1
Node version: 12.16.3
Platform: Windows
Operating system version: Windows 10 Pro
OS build: 19041.450
IDE: Webstorm 2020.1.4
Package manager: yarn,1.22.4
我创建了用于复制问题的存储库。 链接:https://github.com/AlexeyKorkoza/nestjs-swagger-reproduce-issue
我早些时候发布了该问题,但没有人没有回答。 链接:https://github.com/nestjs/swagger/issues/947
任何帮助将不胜感激。预先感谢。
更新
在下午,我已经找到了问题的答案。答复的作者提到此问题与swagger-ui-express
软件包有关。但是,我浏览了存储库中的一个活动,发现作者大约几个月没有回答。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)