我正在尝试使用nestjs-telegraf库实现定制的Telegraf中间件,并使用Prisma连接到数据库。
@Module({
imports: [
TelegrafModule.forRootAsync({
imports: [ConfigModule, LoggerModule],
useFactory: (configService: ConfigService, logger: LoggerMiddleware) => {
return {
token: configService.get<string>("TELEGRAM_TOKEN")!,
middlewares: [sessionMiddleware, logger.use]
};
},
inject: [ConfigService, LoggerMiddleware]
}),
PrismaModule
],
controllers: [],
providers: [...someProviders]
})
export class AppModule {}
记录器中间件:
@Injectable()
export class LoggerMiddleware {
constructor(private readonly prisma: PrismaService) {}
async use(ctx: Context, next: NextFunction) {
const listUser = await this.prisma.user.findMany()
console.log('listUser = ', listUser)
next()
}
}
记录器模块:
@Module({
imports: [PrismaModule],
providers: [LoggerMiddleware, PrismaService],
exports: [LoggerMiddleware]
})
export class LoggerModule {}
它启动时没有错误,代码到达我的日志记录器中间件,但随后我收到一个错误:
TypeError:无法读取未定义的属性(阅读“prima”)
我可以从另一个提供程序访问Prisma服务,并且与DB的连接正常。开始时,nest成功初始化所有依赖项,但我不明白为什么在执行过程中出现此错误。我做错了什么?
1条答案
按热度按时间envsm3lx1#
Alexandria ·布哈拉在github上给出了答案