带有 ClientsModuleOptions 的 Nestjs 环境变量

Posted

技术标签:

【中文标题】带有 ClientsModuleOptions 的 Nestjs 环境变量【英文标题】:Nestjs env variable with ClientsModuleOptions 【发布时间】:2021-11-03 14:17:55 【问题描述】:

我有以下 IP 和端口,但我想将其与环境变量一起携带,以便可以从那里进行编辑

import  ClientsModuleOptions, Transport  from "@nestjs/microservices"

export const GatewayOptions: ClientsModuleOptions = [
    
        name: 'MICRO-ADMIN',
        transport: Transport.TCP,
        options: 
            host: '127.20.20.2',
            port: 4000,
        ,
    ,
    
        name: 'MICRO-DEV',
        transport: Transport.TCP,
        options: 
            host: '127.30.30.3',
            port: 5000,
        ,
    ,
];

我将此配置导入模块。

import  Module  from '@nestjs/common';
import  ClientsModule  from '@nestjs/microservices';
import  GatewayOptions  from 'src/utils/gateway/gateway';
import  AuthModule  from './../auth/auth.module';
import  CategoryModule  from './../category/category.module';
import  GameController  from './game.controller';
import  GameService  from './game.service';

@Module(
  imports: [
    AuthModule,
    CategoryModule,
    ClientsModule.register(GatewayOptions)
   ],
  controllers: [GameController],
  providers: [GameService],
  exports: [GameService],
)
export class GameModule 

【问题讨论】:

【参考方案1】:

你需要使用 register async 才能使用ConfigService

关注文档:https://docs.nestjs.com/microservices/basics#client

@Module(
  providers: [
    
      provide: 'MATH_SERVICE',
      useFactory: (configService: ConfigService) => 
        const mathSvcOptions = configService.getMathSvcOptions();
        return ClientProxyFactory.create(mathSvcOptions);
      ,
      inject: [ConfigService],
    
  ]
  ...
)

以下是配置ConfigService的方法:https://docs.nestjs.com/techniques/configuration#configuration

【讨论】:

以上是关于带有 ClientsModuleOptions 的 Nestjs 环境变量的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 uuencode 的“sendmail”发送邮件,并带有主题

带有和不带有聚合的 sql 查询

带有滚动的 Div 和带有绝对位置的内容

带有 RecyclerView 的 DialogFragment 比带有 Recyclerview 的 Fragment 慢

如何翻转正面带有标签而背面带有另一个标签的视图 - 参见图片

CakePHP 如何处理带有/不带有 'id' 字段的 HABTM 表?