当前位置:   article > 正文

NestJS入门6:日志中间件

NestJS入门6:日志中间件

前文参考:

NestJS入门1

NestJS入门2:创建模块

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

NestJS入门4:MySQL typeorm 增删改查

NestJS入门5:加入Swagger

1. 安装

nest g middleware logger middleware

2. logger.middleware.ts修改

logger.middleware.ts修改为:

​ 

  1. import { Injectable, NestMiddleware } from '@nestjs/common';
  2. import { Request, Response } from 'express';
  3. @Injectable()
  4. export class LoggerMiddleware implements NestMiddleware {
  5. use(req: Request, res: Response, next: () => void) {
  6. const {method, path} = req;
  7. console.log(`${method} ${path}`);
  8. next();
  9. }
  10. }

3. app.modules.ts修改

app.modules.ts修改为:

  1. import { Module } from '@nestjs/common';
  2. import { AppController } from './app.controller';
  3. import { AppService } from './app.service';
  4. import { UserModule } from "./user/user.module";
  5. import { TypeOrmModule } from "@nestjs/typeorm";
  6. import { LoggerMiddleware } from './middleware/logger/logger.middleware';
  7. import { MiddlewareBuilder } from '@nestjs/core';
  8. @Module({
  9. imports: [UserModule,
  10. TypeOrmModule.forRoot({
  11. type: "mysql",
  12. host: "localhost",
  13. port: 3306,
  14. username: "root",
  15. password: "root",
  16. database: "user", //数据库名称
  17. entities: ["dist/**/*.entity{.ts,.js}"], //扫描本项目中.entity.ts或者.entity.js的文件
  18. synchronize: true,
  19. }),],
  20. controllers: [AppController],
  21. providers: [AppService],
  22. })
  23. export class AppModule {
  24. configure(consumer: MiddlewareBuilder){
  25. consumer.apply(LoggerMiddleware).forRoutes('user');
  26. }
  27. }

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

consumer.apply(LoggerMiddleware).forRoutes('*');

4. 测试

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/141546?site
推荐阅读
相关标签
  

闽ICP备14008679号