@webundsoehne/nest-fastify-file-upload
v2.2.0
Published
Port of NestJS FileInterceptor & MulterModule for FastifyAdapter
Downloads
8,533
Readme
Port of Nest's file upload and MulterModule for FastifyAdapter!
Compatibile with NestJS 7-10 and Fastify 3-4.
Steps:
Install to your project:
npm i @webundsoehne/nest-fastify-file-upload
IMPORTANT: Register contentParser
in your root application after creation:
import { NestFactory } from '@nestjs/core'
import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify'
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'
import { contentParser } from 'fastify-multer'
import { AppModule } from './app.module'
async function bootstrap (): Promise<void> {
const app = await NestFactory.create<NestFastifyApplication>(AppModule, new FastifyAdapter())
await app.register(contentParser)
await app.listen(3000)
}
bootstrap()
Use it like the official NestJS package for Express in your controllers:
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
@ApiFileBody('file')
@ApiConsumes('multipart/form-data')
uploadFile (@UploadedFile('file') file: MulterFile): void {
console.log(file)
}
...
The package will export the missing Express.Multer.*
types as Multer*
.
more information: https://docs.nestjs.com/techniques/file-upload
@ApiFileBody Decorator
Useful controller decorator that adds file upload functionality in Swagger.
You can specify the file key as parameter, default key is file
.
MulterModule
Register the MulterModule e.g. to directly upload to a specified directory.
import { Module } from '@nestjs/common'
import { AppController } from './app.controller'
import {MulterModule} from "../multer.module";
@Module({
controllers: [AppController],
imports: [
MulterModule.register({dest: './uploads'})
]
})
export class AppModule { }
more information and options: https://docs.nestjs.com/techniques/file-upload#default-options
Stay in touch
- Do you have any additional questions?
- Author: Backend Team
- Website: Web & Söhne