【问题标题】:How can i access the database into the middleware如何将数据库访问到中间件
【发布时间】:2020-04-07 01:28:13
【问题描述】:

我想记录访问 API 的频率。我想通过中间件将每个 API 访问直接插入数据库。我不知道如何访问nestjs中间件中的数据库。

代码如下:

import { NestMiddleware, Injectable } from '@nestjs/common';
import { Request, Response } from 'express';

// console.log('StatisticsMiddleware');
@Injectable()
export class StatisticsMiddleware implements NestMiddleware {
  use(req: Request, res: Response, next: Function) {
    // console.log(req.originalUrl, req.ip, req.connection.remoteAddress);
    const url = req.originalUrl
    const ip = req.ip || req.connection.remoteAddress

    // 
    Db.insert('LOG_TABLE', url, ip)
    next();
  }
}

【问题讨论】:

    标签: express nestjs


    【解决方案1】:

    中间件类就像 NestJS 中的任何其他 @Injectable() 类一样,因此可以将数据库注入其中。 The docs mention you can use injection like any other provider,所以您需要做的就是提供数据库连接(无论是 Mongo 模型、TypeORM 存储库还是其他任何东西),您就可以从那里访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      相关资源
      最近更新 更多