首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NestJS网关依赖注入

NestJS网关依赖注入
EN

Stack Overflow用户
提问于 2020-12-29 15:42:28
回答 1查看 1.4K关注 0票数 0

我有一个名为"PlayerService“的服务,网关调用"Player Gateway",PlayersGateway依赖于PlayerService,但不能在网关内注入o服务。

PlayerGateway

代码语言:javascript
运行
复制
@UseInterceptors(RedisPropagatorInterceptor)
@WebSocketGateway()
@Injectable()
export class PlayerGateway
  extends BaseGateway
  implements OnGatewayConnection, OnGatewayInit, OnGatewayDisconnect {

constructor(private playerService: PlayerService) {
    super();
  }

PlayerService

代码语言:javascript
运行
复制
@Injectable()
export class PlayerService extends BaseService<Player> {
  protected fieldsSearchable: FieldsSearchable = {};

  private logger = new Logger('PlayerService');

  constructor(
    @InjectRepository(PlayerRepository)
    repository: PlayerRepository,
    @Inject(REQUEST) protected request: Request,
    private redisService: RedisService,
  ) {
    super();
    this.setRepository(repository);
  }

PlayerModule

代码语言:javascript
运行
复制
@Module({
  imports: [
    TypeOrmModule.forFeature([Player, PlayerRepository]),
    RedisModule,
    SocketModule,
    RedisPropagatorModule,
  ],
  controllers: [PlayerController],
  exports: [TypeOrmModule, PlayerService],
  providers: [PlayerService, PlayerGateway],
})
export class PlayerModule {}

Modules.ts

代码语言:javascript
运行
复制
@Module({
  imports: [
    RedisModule,
    SocketModule,
    RedisPropagatorModule,
    SessionModule,
    PlayerModule,
  ],
  exports: [RedisModule, SocketModule],
  controllers: [],
  providers: [ServerGateway, NetworkGateway],
})

我想知道的是,如何在网关中注入服务,或者如何生成类似于这个rsrs的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-29 18:45:54

您的PlayerService正在尝试插入请求:

@Inject(REQUEST) protected request: Request

这对于构建网关实例没有意义,因为它应该独立于任何单独的HTTP请求。您实际上需要访问PlayerService中的请求吗?如果是这样的话,您将不得不将其分割成不同的服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65494767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档