我正在尝试在 ClientsModule 中使用环境变量:
import { Module } from '@nestjs/common';
import { ClientsModule, Transport } from '@nestjs/microservices';
@Module({
imports: [
TypeOrmModule.forFeature([Process]),
ClientsModule.register([
{
name: 'PROCESS_SERVICE',
transport: Transport.RMQ,
options: {
queue: process.env.RMQ_PRODUCER_QUEUE_NAME,
urls: [process.env.RMQ_PRODUCER_URL],
queueOptions: { durable: true },
},
},
]),
我也试过这个:
import { Module } from '@nestjs/common';
import { ClientsModule, Transport } from '@nestjs/microservices';
import { ConfigService } from '@nestjs/config';
const configService = new ConfigService();
const rmqProcessUrl = configService.get<string>('RMQ_PRODUCER_URL');
const rmqProcessQueue = configService.get<string>('RMQ_PRODUCER_QUEUE');
@Module({
imports: [
TypeOrmModule.forFeature([Process]),
ClientsModule.register([
{
name: 'PROCESSES_SERVICE',
transport: Transport.RMQ,
options: {
queue: rmqProcessQueue,
urls: [rmqProcessUrl],
queueOptions: { durable: true },
},
},
]),
但在这两种情况下都会出现以下错误:
TypeError:元类型不是构造函数
当我直接使用这些值时,它按预期工作。我也尝试过导入和使用
export const rmqServiceName = process.env.RMQ_PRODUCER_QUEUE_NAME
和
export const rmqServiceName = process.env.RMQ_PRODUCER_URL
但这也会导致同样的错误。
那么如何才能访问 中的.env
变量@ClientsModule
?有没有我想念的解决方法?