NestJS无法解析AppService依赖问题求助
解决NestJS依赖解析错误:无法解析ScheduleRegistry
问题原因
你的错误源于AppService中注入了ScheduleRegistry,但Nest无法正确解析该依赖。实际上你当前的代码仅使用了@Cron装饰器,完全不需要注入ScheduleRegistry。
解决方案
方案1:移除未使用的依赖注入
直接修改AppService的构造函数,删除ScheduleRegistry相关注入代码:
import {Injectable} from '@nestjs/common'; import {EventEmitter2} from '@nestjs/event-emitter'; import {Cron, CronExpression} from '@nestjs/schedule'; @Injectable() export class AppService { constructor( private readonly eventEmitter: EventEmitter2, // 移除该行:private scheduleRegistry: ScheduleRegistry, ) { } @Cron(CronExpression.EVERY_10_SECONDS) sendNotificationScheduler() { console.log('+++++++ HELLO++++++++'); } }
方案2:正确注入ScheduleRegistry(若后续需使用)
如果之后需要动态操作定时任务(如添加/删除任务),需通过@Inject()装饰器指定注入标识:
import {Injectable, Inject} from '@nestjs/common'; import {EventEmitter2} from '@nestjs/event-emitter'; import {ScheduleRegistry, Cron, CronExpression} from '@nestjs/schedule'; @Injectable() export class AppService { constructor( private readonly eventEmitter: EventEmitter2, @Inject(ScheduleRegistry) private readonly scheduleRegistry: ScheduleRegistry, ) { } @Cron(CronExpression.EVERY_10_SECONDS) sendNotificationScheduler() { console.log('+++++++ HELLO++++++++'); } }
注:你的AppModule已正确导入ScheduleModule.forRoot(),无需额外修改。
验证修改
重启应用后,依赖解析错误会消失,@Cron装饰的定时任务将每10秒执行一次并输出日志。
内容的提问来源于stack exchange,提问作者DolDurma
相关产品推荐
相关产品推荐

