nestjs的providers全局共享为什么不行?
场景:nestjs modules 使用app.service 是否需要注册?我想实现的大致如下:
以上不行!? 理论上来说我在app.module.ts
中使用了providers
应该是全局共享的呀?还是说我理解的有错误?
import { Module } from '@nestjs/common'
import { AppController } from './app.controller'
import { AppService } from './app.service'
import { MediaModule } from './modules/media/media.module'
import { FdsModule } from './modules/fds/fds.module'
import { NestLogsModule } from 'nest-logs'
import { ConfigModule } from '@nestjs/config'
@Module({
imports: [
MediaModule,
FdsModule,
NestLogsModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
预期:在其他的modules使用app的方法的时候可以不用注册、辛苦有相关的伙伴指点一下、感谢
回复
1个回答

test
2024-07-04
你可以看看这个例子:新建一个 GlobalModule 的全局模块:
import { Module, Global } from '@nestjs/common';
import { AppService } from './app.service';
@Global()
@Module({
providers: [AppService],
exports: [AppService],
})
export class GlobalModule {}
2.更新 AppModule 以引入 GlobalModule:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { MediaModule } from './modules/media/media.module';
import { FdsModule } from './modules/fds/fds.module';
import { NestLogsModule } from 'nest-logs';
import { ConfigModule } from '@nestjs/config';
import { GlobalModule } from './global.module';
@Module({
imports: [
MediaModule,
FdsModule,
NestLogsModule,
ConfigModule,
GlobalModule,
],
controllers: [AppController],
})
export class AppModule {}
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容