2

NestJS/Fastify と typescript でファイルをアップロードしようとしました

これはmain.ts

async function bootstrap() {
  //file upload with fastify
  const fastifyAdapter = new FastifyAdapter();
  fastifyAdapter.register(fmp, {
    limits: {
      fieldNameSize: 100, // Max field name size in bytes
      fieldSize: 1000000, // Max field value size in bytes
      fields: 10, // Max number of non-file fields
      fileSize: 100, // For multipart forms, the max file size
      files: 1, // Max number of file fields
      headerPairs: 2000, // Max number of header key=>value pairs
    },
  });

  const app = await NestFactory.create<NestFastifyApplication>(
    AppModule,
    fastifyAdapter,
  );
 await app.listen(3000);
  Logger.log('application started on http://localhost:3000', 'Bootstrap');
}
bootstrap();

そしてこれはfile.controller.ts

@Post()
  @UseInterceptors(FileInterceptor('image'))
  @ApiConsumes('multipart/form-data')
  @ApiBody({
    description: 'logo',
    type: UploadFileDto,
  })
  uploadedFile(@UploadedFile() file) {
    const response = {
      originalname: file.originalname,
      filename: file.filename,
    };
    return response;
  }

このアクションにファイルをアップロードした後、コードは次のような例外をスローします

TypeError: req.pipe is not a function at multerMiddleware (D:\R.Khodabakhshi\Repository\raimun-web\node_modules\multer\lib\make-middleware.js:176:9) at Promise (D:\R.Khodabakhshi) \Repository\raimun-web\node_modules@nestjs\platform-express\multer\interceptors\file.interceptor.js:15:81) at new Promise () at MixinInterceptor.intercept (D:\R.Khodabakhshi\Repository\raimun- web\node_modules@nestjs\platform-express\multer\interceptors\file.interceptor.js:15:19) を D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\core\interceptors\interceptors-consumer に配置します。 js:22:36 で Object.handle (D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\core\interceptors\interceptors-consumer.js:20:56) で LoggingInterceptor.intercept (D:\R .Khodabakhshi\Repository\raimun-web\dist\shared\logging.interceptor.js:28:21) D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\core\interceptors\interceptors-consumer.js:22:36 で InterceptorsConsumer.intercept (D:\R.Khodabakhshi\Repository\raimun-web \node_modules@nestjs\core\interceptors\interceptors-consumer.js:24:24) D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\core\router\router-execution-context.js:45 :60 [Nest] 10928 - 2020-02-06 10:10:49 [ExceptionFilter] undefined undefined +587529ms TypeError: req.pipe is not a function at multerMiddleware (D:\R.Khodabakhshi\Repository\raimun-web\node_modules \multer\lib\make-middleware.js:176:9) Promise (D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\platform-express\multer\interceptors\file.interceptor.js:15) :81) 新しい Promise () at MixinInterceptor.intercept (D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\platform-express\multer\interceptors\file.interceptor.js:15:19) at D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\core\ Interceptors\interceptors-consumer.js:22:36 の Object.handle (D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\core\interceptors\interceptors-consumer.js:20:56) の LoggingInterceptor。 D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\core\interceptors でインターセプト (D:\R.Khodabakhshi\Repository\raimun-web\dist\shared\logging.interceptor.js:28:21) \interceptors-consumer.js:22:36 at InterceptorsConsumer.intercept (D:\R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\core\interceptors\interceptors-consumer.js:24:24) at D:\ R.Khodabakhshi\Repository\raimun-web\node_modules@nestjs\core\router\router-execution-context.js:45:60

どうすれば問題を解決できますか???

4

2 に答える 2