nestjs目录命名导致的循环引用
具体报错如下:
[Nest] 2024 - 2024/09/02 22:57:02 ERROR [ExceptionHandler] A circular dependency has been detected inside ApplicationModule. Please, make sure that each side of a bidirectional relationships are decorated with "forwardRef()". Note that circular relationships between custom providers (e.g., factories) are not supported since functions cannot be called more than once.
Error: A circular dependency has been detected inside ApplicationModule. Please, make sure that each side of a bidirectional relationships are decorated with "forwardRef()". Note that circular relationships between custom providers (e.g., factories) are not supported since functions cannot be called more than once.
复现方式:尽管U8AppService全是空方法仍然会出现循环引用的报错
import { App } from "@/entities/app.entity";
import { TypeOrmModule } from "@hg/born-typeorm";
import { Module, Injectable } from "@hg/born/common";
import { ApplicationController } from "./controller";
import { U8AppService } from "./Service";
@Module({
imports: [TypeOrmModule.forFeature([App])],
controllers: [ApplicationController],
providers: [U8AppService],
exports: [U8AppService],
})
export class ApplicationModule { }
修改方法:将目录名从Service改为base就正常了
import { App } from "@/entities/app.entity";
import { TypeOrmModule } from "@hg/born-typeorm";
import { Module, Injectable } from "@hg/born/common";
import { ApplicationController } from "./controller";
import { U8AppService } from "./base";
@Module({
imports: [TypeOrmModule.forFeature([App])],
controllers: [ApplicationController],
providers: [U8AppService],
exports: [U8AppService],
})
export class ApplicationModule { }
猜测nestjs在进行目录解析的时候进行了一些独特的处理 导致有的命名无法正常解析