做国内网站阿里云怎么样seo综合诊断工具
一、Middleware(中间件)、Interceptor(拦截器)、ExceptionFilter(异常过滤器) 执行顺序
- 接口调用正常:Middleware ==> Interceptor
- 接口调用异常:Middleware ==> ExceptionFilter
二、访问静态文件
使用 @nestjs/serve-static 依赖
配置方法:
// app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UserModule } from './user/user.module';
import { ListModule } from './list/list.module';
import { UploadModule } from './upload/upload.module';//访问静态文件
import { ServeStaticModule } from '@nestjs/serve-static';
import { join } from 'path';
@Module({imports: [ServeStaticModule.forRoot({rootPath: join(__dirname, '..', 'public/upload'),serveRoot: '/static',}),UserModule,ListModule,UploadModule,],controllers: [AppController],providers: [AppService],
})
export class AppModule {}
三、上传文件
创建upload curd
在upload.module.ts
// upload.module.ts
import { Module } from '@nestjs/common';
import { UploadService } from './upload.service';
import { UploadController } from './upload.controller';
import { diskStorage } from 'multer';
import { MulterModule } from '@nestjs/platform-express';
import { extname, join } from 'path';
@Module({imports: [MulterModule.register({storage: diskStorage({//这里不需要使用__dirnamedestination: join('./public/upload'),filename: (_, file, callback) => {const filename = `${new Date().getTime() + extname(file.originalname)}`;return callback(null, filename);},}),}),],controllers: [UploadController],providers: [UploadService],
})
export class UploadModule {}
upload.controller.ts
// upload.controller.ts
import {Controller,Post,UseInterceptors,UploadedFile,
} from '@nestjs/common';
import { UploadService } from './upload.service';
import { FileInterceptor } from '@nestjs/platform-express';
@Controller('upload')
export class UploadController {constructor(private readonly uploadService: UploadService) {}@Post('album')@UseInterceptors(FileInterceptor('file'))upload(@UploadedFile() file) {console.log('file', file);return true;}
}