Как я могу получить доступ к базе данных в промежуточном программном обеспечении - PullRequest
0 голосов
/ 06 апреля 2020

Я хочу записать частоту доступа к API. Я хочу вставить каждый доступ API непосредственно в базу данных через промежуточное ПО. Я не знаю, как получить доступ к базе данных в промежуточном программном обеспечении nest js.

Код будет выглядеть так:

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();
  }
}

1 Ответ

1 голос
/ 06 апреля 2020

Класс промежуточного программного обеспечения аналогичен любому другому классу @Injectable() в Nest JS, и поэтому в него может быть вставлена ​​база данных. В документах упоминается, что вы можете использовать инъекцию, как и любой другой поставщик , поэтому все, что вам нужно сделать, это предоставить подключение к базе данных (будь то модель Mon go, репозиторий TypeORM или что-то еще) и вам будет хорошо получить доступ оттуда.

...