nestjs的providers全局共享为什么不行?

场景:nestjs modules 使用app.service 是否需要注册?
我想实现的大致如下:
image.png

以上不行!? 理论上来说我在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的方法的时候可以不用注册、辛苦有相关的伙伴指点一下、感谢

阅读 2.4k
2 个回答

你可以看看这个例子:
新建一个 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 {}

感谢1楼给出答案、我也在文档中找到了、还是没有仔细看文档。。。

image.png
相关链接

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题