NestJS入门6:日志中间件

前文参考:

NestJS入门1

NestJS入门2:创建模块

NestJS入门3:不同请求方式前后端写法

NestJS入门4:MySQL typeorm 增删改查

NestJS入门5:加入Swagger

1. 安装

bash 复制代码
nest g middleware logger middleware

2. logger.middleware.ts修改

logger.middleware.ts修改为:

TypeScript 复制代码
import { Injectable, NestMiddleware } from '@nestjs/common';
import { Request, Response } from 'express';

@Injectable()
export class LoggerMiddleware implements NestMiddleware {
  use(req: Request, res: Response, next: () => void) {
    const {method, path} = req;
    console.log(`${method} ${path}`);
    next();
  }
}

3. app.modules.ts修改

app.modules.ts修改为:

TypeScript 复制代码
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UserModule } from "./user/user.module";
import { TypeOrmModule } from "@nestjs/typeorm";
import { LoggerMiddleware } from './middleware/logger/logger.middleware';
import { MiddlewareBuilder } from '@nestjs/core';

@Module({
  imports: [UserModule,
    TypeOrmModule.forRoot({
      type: "mysql",
      host: "localhost",
      port: 3306,
      username: "root",
      password: "root",
      database: "user", //数据库名称
      entities: ["dist/**/*.entity{.ts,.js}"], //扫描本项目中.entity.ts或者.entity.js的文件
      synchronize: true,
    }),],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {
  configure(consumer: MiddlewareBuilder){

    consumer.apply(LoggerMiddleware).forRoutes('user');
  }



}

可改为星号通配符,表示任意路由

TypeScript 复制代码
consumer.apply(LoggerMiddleware).forRoutes('*');

4. 测试

使用postman或swagger测试,后端可以看到请求方法与路径的打印

相关推荐
在下千玦1 小时前
#管理Node.js的多个版本
node.js
你的人类朋友2 小时前
MQTT协议是用来做什么的?此协议常用的概念有哪些?
javascript·后端·node.js
还是鼠鼠5 小时前
Node.js中间件的5个注意事项
javascript·vscode·中间件·node.js·json·express
南通DXZ9 小时前
Win7下安装高版本node.js 16.3.0 以及webpack插件的构建
前端·webpack·node.js
你的人类朋友10 小时前
浅谈Object.prototype.hasOwnProperty.call(a, b)
javascript·后端·node.js
前端太佬10 小时前
暂时性死区(Temporal Dead Zone, TDZ)
前端·javascript·node.js
Mintopia10 小时前
Node.js 中 http.createServer API 详解
前端·javascript·node.js
你的人类朋友10 小时前
CommonJS模块化规范
javascript·后端·node.js
Mintopia1 天前
Node.js 中 fs.readFile API 的使用详解
前端·javascript·node.js
咖啡教室1 天前
nodejs开发后端服务详细学习笔记
后端·node.js