在上一章我们了解到Nest 并不直接依赖Express 可以切换到别的http 请求处理库
创建项目:
nest new middleware-test -p npm
创建 middleware :
nest g middleware test --no-spec --flat
这时候可以看到 req 和 res 的类型都是为 any类型 所以并不知道使用的是express 还是 fastify,所以我们需要手动标注一下类型:
下面是express 的类型标注:
import {
Injectable, NestMiddleware } from '@nestjs/common';
import {
Request, Response } from 'express';
@Injectable()
export class TestMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: () => void) {
console.log('进入 TestMiddleware');
next();
console.log('结束 TestMiddleware');
}
}
接着在 app.module.ts 使用:
import {
MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
import {
AppController } from './app.controller';
import {
AppService } from './app.