javascript - 在nest.js中未定义process.env.variable
问题描述
我正在使用nest.js,我想导入在 auth.parameters.ts 文件中定义的对象。文件定义如下。除非在类中声明了以下变量,否则环境变量似乎不可见。
export const obj = {
somevar : process.env.CUSTOM_VAR,
};
在我的其他课程中,我想使用 import {SecurityParameters } from '../auth/auth.parameters' 导入文件
并使用 console.log(SecurityParameters.somevar) 访问变量。
我可以使用 process.env.CUSTOM_VAR 或直接访问变量
如果我在其他文件中使用 somevar : process.env.CUSTOM_VAR ,我会得到未定义。
解决方案
当您使用 NestConfigModule
时,除非您正在创建自定义配置文件,否则您不应该使用process.env
. 相反,您应该ConfigService
在需要环境变量并使用this.configService.get('CUSTOM_VARIABLE')
(或您需要的任何值)的地方注入 Nest。要开始使用此功能,您需要导入配置模块
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [ConfigModule.forRoot()],
})
export class AppModule {}
您可以传递{ isGlobal: true }
给forRoot()
调用以ConfigService
在应用程序中的任何位置进行注入。
如果您想要一种可以使用该process.env
对象的不同方法,您可以将其添加为您的前两行main.ts
import { config } from 'dotenv';
config();
Nest 在 的内部调用了这个(或类似的东西)ConfigService
,但这并不能立即可用。
推荐阅读
- asp.net-core - 如何在 Web API 中同时支持 json 和 urlencoded 内容类型
- database - 将 OSM 数据迁移到 PostGreSQL 时如何使用 hstore 扩展类型?
- r - 如何使用 R igraph 访问给定最短路径中的已访问顶点
- javascript - 通过 @ViewChild 在视图中调用组件上的方法到 QueryList
- r - 如何使用基于用户输入的函数创建数据框?
- python - 愚蠢的问题:有没有办法让每 X 个 LED 重复一个颜色模式?还是我必须写出灯条中每个 LED 的图案?
- fluentd - Fluentd 日志源
- typescript - 如何从Typescript中相同json对象结构的另一个数组更新数组中的json对象值
- javascript - 获取组件中的查询字符串
- python - 有没有更好的方法来编写这个递归函数?