如何在拦截器中使用 TypeORM 保存到数据库

时间:2021-03-09 10:38:50

标签: nestjs typeorm

我想在每次请求后将数据保存到数据库。我正在尝试在 function 中创建 interceptor,但我在连接到 entity 时遇到了一些问题。

这是拦截器类的开始:

@Injectable()
export class TransformInterceptor<T> implements NestInterceptor<T, Response<T>> {
  constructor(@InjectRepository(UserLog) private readonly userLogRepository: Repository<UserLog>) {}

这个拦截器不属于任何模块。这在 main.ts 文件中实例化。 这是我得到的错误:

Expected 1 arguments, but got 0.
app.useGlobalInterceptors(new TransformInterceptor());   
An argument for 'userLogRepository' was not provided.

我可以使用什么作为 constructor 的参数?

1 个答案:

答案 0 :(得分:1)

与其使用不使用 Nest 的 IoC 的 useGlobalInterceptors,不如将其注入您的 AppModule。

@Module({
  providers: [
    {
      provide: APP_INTERCEPTOR,
      useClass: TransformInterceptor,
    },
  ]
})
export class AppModule {}