【发布时间】:2020-05-22 03:59:46
【问题描述】:
我尝试使用 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;
}
上传文件到这个action后,代码抛出这样的异常
TypeError: req.pipe 不是函数 在 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) 在新的承诺 () 在 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 不是函数 在 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) 在新的承诺 () 在 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
我该如何解决这个问题???
【问题讨论】:
标签: node.js typescript file-upload nestjs fastify