【发布时间】:2021-04-06 05:42:00
【问题描述】:
我有一个叫“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 {}
Modules.ts
@Module({
imports: [
RedisModule,
SocketModule,
RedisPropagatorModule,
SessionModule,
PlayerModule,
],
exports: [RedisModule, SocketModule],
controllers: [],
providers: [ServerGateway, NetworkGateway],
})
我想知道的是如何在网关内注入服务或制作类似 rsrs 的方法
【问题讨论】:
-
在控制器上使用请求对象,请避免在服务上使用它
标签: typescript dependency-injection nestjs provider gateway