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测试,后端可以看到请求方法与路径的打印

相关推荐
LKAI.10 分钟前
传统方式部署(RuoYi-Cloud)微服务
java·linux·前端·后端·微服务·node.js·ruoyi
Q_Q19632884753 小时前
python的电影院座位管理可视化数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
一枚前端小能手6 小时前
⚡ Node.js服务器慢得像蜗牛,性能优化实战分享
前端·node.js·dnodejs
Cecilialana9 小时前
在安装 node-sass 时出现的编译问题
webpack·node.js
墨鸦_Cormorant11 小时前
MQTT(轻量级消息中间件)基本使用指南
mqtt·中间件·消息中间件
前端双越老师12 小时前
【干货】使用 langChian.js 实现掘金“智能总结” 考虑大文档和 token 限制
人工智能·langchain·node.js
一枚小小程序员哈21 小时前
基于Vue + Node能源采购系统的设计与实现/基于express的能源管理系统#node.js
vue.js·node.js·express
海上彼尚1 天前
使用 npm-run-all2 简化你的 npm 脚本工作流
前端·npm·node.js
开发者小天1 天前
为什么 /deep/ 现在不推荐使用?
前端·javascript·node.js
一枚小小程序员哈1 天前
基于Vue的个人博客网站的设计与实现/基于node.js的博客系统的设计与实现#express框架、vscode
vue.js·node.js·express