You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决NestJS中的UndefinedDependencyException异常?

解决NestJS启动时的UndefinedDependencyException错误
  • 检查FlowerService构造函数的第0位参数:该依赖未在FlowerModule的上下文中注册,先确认参数对应的类/提供者是否存在拼写错误。
  • 确保依赖已加入FlowerModule的providers数组:如果依赖是当前模块内的服务或自定义提供者,必须在模块的providers中声明。
  • 处理跨模块依赖:如果依赖来自其他模块,需确保依赖所在模块已被FlowerModule的imports数组导入,且该依赖在源模块的exports数组中导出。
  • 排查循环依赖:若FlowerService和第0位依赖存在循环引用,需使用forwardRef()来包装注入的依赖和模块注册。

示例代码

模块内依赖注册

// flower.module.ts
import { Module } from '@nestjs/common';
import { FlowerService } from './flower.service';
import { TargetDependency } from './target-dependency'; // 第0位的依赖类

@Module({
  providers: [FlowerService, TargetDependency],
})
export class FlowerModule {}

跨模块依赖处理

// flower.module.ts
import { Module } from '@nestjs/common';
import { FlowerService } from './flower.service';
import { SharedModule } from '../shared/shared.module';

@Module({
  imports: [SharedModule],
  providers: [FlowerService],
})
export class FlowerModule {}

// shared.module.ts
import { Module } from '@nestjs/common';
import { TargetDependency } from './target-dependency';

@Module({
  providers: [TargetDependency],
  exports: [TargetDependency],
})
export class SharedModule {}

内容的提问来源于stack exchange,提问作者Etienne Laurin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:22:36