我试图使用以下策略:https://stephen-knutter.github.io/2020-02-07-nestjs-graphql-file-upload/在我的api中进行文件上传。
如果不使用ValidationPipe,但是当我启用ValidationPipe时,类转换器上会出现这样的错误:
TypeError: Promise resolver undefined is not a function
at new Promise (<anonymous>)
at TransformOperationExecutor.transform (/Users/victorassis/Workspace/barreiroclub/api/node_modules/class-transformer/TransformOperationExecutor.js:117:32)
at _loop_1 (/Users/victorassis/Workspace/barreiroclub/api/node_modules/class-transformer/TransformOperationExecutor.js:235:45)
at TransformOperationExecutor.transform (/Users/victorassis/Workspace/barreiroclub/api/node_modules/class-transformer/TransformOperationExecutor.js:260:17)
at ClassTransformer.plainToClass (/Users/victorassis/Workspace/barreiroclub/api/node_modules/class-transformer/ClassTransformer.js:17:25)
at Object.plainToClass (/Users/victorassis/Workspace/barreiroclub/api/node_modules/class-transformer/index.js:20:29)
at ValidationPipe.transform (/Users/victorassis/Workspace/barreiroclub/api/node_modules/@nestjs/common/pipes/validation.pipe.js:40:39)
at /Users/victorassis/Workspace/barreiroclub/api/node_modules/@nestjs/core/pipes/pipes-consumer.js:15:33
at processTicksAndRejections (internal/process/task_queues.js:97:5)我搜索了很多,但是像类转换器这样的搜索被放弃了,答案是不要在上传的时候使用ValidationPipe。
有人认错了然后找到了解决办法?
发布于 2022-04-25 04:00:11
我试着遵循您上面发布的示例,然后启用类的转换,正如您所提到的,我没有遇到任何错误。但是,当我试图在解析器中放置错误类型的参数时,我遇到了这个错误。下面是我安装应用程序引导程序的地方:
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.enableCors({
origin: extractOrigins(app.get(ConfigService).get('CORS_ORIGINS')),
});
app.useGlobalPipes(
new ValidationPipe({
transform: true,
}),
);
app.use(graphqlUploadExpress());
await app.listen(app.get(ConfigService).get('PORT') ?? 3000);
logScaffoldApp(app);
}
bootstrap();解析程序代码:
@Mutation(() => Boolean, { nullable: true })
async uploadVocabularies(
@Args({
name: 'file',
type: () => GraphQLUpload,
})
{ createReadStream, filename }: FileUpload,
) {
console.log('attachment:', filename);
const stream = createReadStream();
stream.on('data', (chunk: Buffer) => {
console.log(chunk);
});
}当我尝试学习另一个教程时,我确实得到了一个错误,并且尝试将这个论点作为一个承诺,所以类转换器得到了同样的错误:
@Mutation(() => Boolean, { nullable: true })
async uploadVocabularies(
@Args({
name: 'file',
type: () => GraphQLUpload,
})
attachment: Promise<FileUpload>,
) {
const { filename, createReadStream } = await attachment;
console.log('attachment:', filename);
const stream = createReadStream();
stream.on('data', (chunk: Buffer) => {
console.log(chunk);
});
}我希望这能帮助你和其他看过这篇文章的人
https://stackoverflow.com/questions/62361052
复制相似问题