[英]NestJS Gateway dependency injection
我有一個名為“PlayerService”的服務,網關調用“Player Gateway”,PlayersGateway 具有 PlayerService 的依賴項,但我無法在網關內注入服務。
播放器網關
@UseInterceptors(RedisPropagatorInterceptor)
@WebSocketGateway()
@Injectable()
export class PlayerGateway
extends BaseGateway
implements OnGatewayConnection, OnGatewayInit, OnGatewayDisconnect {
constructor(private playerService: PlayerService) {
super();
}
播放器服務
@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);
}
播放器模塊
@Module({
imports: [
TypeOrmModule.forFeature([Player, PlayerRepository]),
RedisModule,
SocketModule,
RedisPropagatorModule,
],
controllers: [PlayerController],
exports: [TypeOrmModule, PlayerService],
providers: [PlayerService, PlayerGateway],
})
export class PlayerModule {}
模塊.ts
@Module({
imports: [
RedisModule,
SocketModule,
RedisPropagatorModule,
SessionModule,
PlayerModule,
],
exports: [RedisModule, SocketModule],
controllers: [],
providers: [ServerGateway, NetworkGateway],
})
我想知道的是如何在網關內注入服務或制作類似 rsrs 的方法
您的 PlayerService 正在嘗試注入請求:
@Inject(REQUEST) protected request: Request
這對於構建網關實例沒有意義,因為它應該獨立於任何單獨的 HTTP 請求。 你真的需要訪問PlayerService
中的請求嗎? 如果是這樣,您將不得不將其拆分為單獨的服務
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.