NestJ在中间件中包含TypeORM存储库



我有以下中间件来记录所有http请求:

@Injectable()
export class RequestMiddleware implements NestMiddleware {
constructor(
@InjectRepository(Request) private requestsRepository: Repository<Request>,
) {}
private readonly logger = new Logger('HTTP');
use(request: Request, response: Response, next: NextFunction) {
response.on('finish', () => {
const { method, originalUrl } = request;
const { statusCode, statusMessage } = response;
const message = `${method} ${originalUrl} ${statusCode} ${statusMessage}`;
return this.logger.log(message);
});
next();
}
}

我的目标是将所有请求记录到数据库中。我使用的是TypeORM,所以我想注入请求存储库,并以这种方式记录每个请求。当我这样做时,我收到以下错误:

错误:Nest无法解析类RequestMiddleware的依赖项

问题是,这个中间件不是模块的一部分,它只是一个单独的typescript文件,所以我如何将TypeORM repo模块导入到一个普通的typescript文件中,以便使用它?

在定义和使用RequestMiddleware的模块中,TypeormModule.forFeature([Request])需要添加到imports阵列

最新更新