NestJS 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架。它使用现代 JavaScript 或 TypeScript 构建,并结合了 OOP(面向对象编程)、FP(函数式编程)和 FRP(函数式响应编程)的元素。
在 NestJS 中,模块(Module)是一个装饰器,它将相关的功能组织在一起,比如控制器(Controller)、服务(Service)等。模块可以导入其他模块,并导出其控制器或服务,以便其他模块可以使用它们。
当你说“无法向拥有该接口的子模块提供实例”,我理解为你在尝试将一个服务或控制器实例提供给一个子模块时遇到了问题。
以下是一个简单的示例,展示如何在 NestJS 中正确地组织和提供模块实例。
app.module.ts
)import { Module } from '@nestjs/common';
import { SubModule } from './sub-module/sub-module.module';
@Module({
imports: [SubModule],
})
export class AppModule {}
sub-module.module.ts
)import { Module } from '@nestjs/common';
import { SubController } from './sub.controller';
import { SubService } from './sub.service';
@Module({
controllers: [SubController],
providers: [SubService],
})
export class SubModule {}
sub.controller.ts
)import { Controller, Get } from '@nestjs/common';
import { SubService } from './sub.service';
@Controller('sub')
export class SubController {
constructor(private readonly subService: SubService) {}
@Get()
getHello(): string {
return this.subService.getHello();
}
}
sub.service.ts
)import { Injectable } from '@nestjs/common';
@Injectable()
export class SubService {
getHello(): string {
return 'Hello from SubService!';
}
}
通过上述示例,你可以看到如何在 NestJS 中正确地组织和提供模块实例。确保你的模块导入顺序正确,依赖注入语法正确,并且没有循环依赖。如果问题仍然存在,请检查控制台输出的错误信息,通常它会提供有关问题的更多详细信息。
没有搜到相关的文章