如何解决NestJS 网关依赖注入
我有一个名为“PlayerService”的服务,网关称为“Player Gateway”,PlayersGateway 依赖于 PlayerService,但我无法在网关内注入 o 服务。
玩家网关
@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,SessionModule,PlayerModule,exports: [RedisModule,SocketModule],controllers: [],providers: [ServerGateway,NetworkGateway],})
我想知道的是如何在网关内注入服务或制作类似 rsrs 的方法
解决方法
您的 PlayerService 正在尝试注入请求:
@Inject(REQUEST) protected request: Request
这对于构建网关的实例没有意义,因为它应该独立于任何单独的 HTTP 请求。您真的需要访问您的 PlayerService
中的请求吗?如果是这样,您必须将其拆分为单独的服务
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。