如何使.env变量在JS类构造函数中工作?

兔子

我正在研究Node / Express项目。大部分代码包含在文件夹内的文件中,因此名为“ controllers”的文件夹包含项目的所有控制器,名为“ services”的文件夹包含项目的所有服务,等等。启动服务器的代码位于内部app.js直接在项目根目录中的一个名为的文件

所有的控制器和服务都声明为JS类,并包含一个构造函数。Dotenv被加载到内部,app.js并且env变量在类构造函数内部的所有地方都能正常工作,因为那些似乎在dotenv初始化之前被加载。

使用的类语法的示例:

export default class exampleService {
    constructor() {
        console.log('This is not working', process.env.EXAMPLE); // process.env.EXAMPLE is undefined
    }

    myFunction() {
        console.log('This works just fine', process.env.EXAMPLE); // process.env.EXAMPLE is exactly how it's defined in .env
    }

    // All other class methods are here.
}

有没有一种方法可以让dotenv变量在类构造函数中工作不必在每个类文件的开头导入和初始化dotenv?

如果我确实希望将dotenv分别导入每个类文件,那么除了使代码不太干净之外,它还会有其他弊端吗?

尼尔·阿尔法西

尝试在dotenv加载加载应用程序(从源复制):

预载

您可以使用--require(-r)命令行选项来预加载dotenv。这样,您无需在应用程序代码中要求并加载dotenv。当使用导入而不是require时,这是首选方法。

$ node -r dotenv/config your_script.js

支持以下配置选项作为格式的命令行参数 dotenv_config_<option>=value

$ node -r dotenv/config your_script.js dotenv_config_path=/custom/path/to/your/env/vars

此外,您可以使用环境变量来设置配置选项。命令行参数将在这些参数之前。

$ DOTENV_CONFIG_<OPTION>=value node -r dotenv/config your_script.js
$ DOTENV_CONFIG_ENCODING=latin1 node -r dotenv/config your_script.js dotenv

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何比类中的成员变量更早地调用构造函数?

如何从构造函数继承类变量类型?

如何从JS类的构造函数调用函数

如何在派生类构造函数中初始化基类成员变量?

move构造函数在C ++中如何工作?

c ++中的副本构造函数如何工作?

如何让子类中的构造函数继承构造函数或基类?

Java 8中对本地类构造函数的方法引用如何工作?

向量范围构造函数在下面的类中如何工作?

Fixpoint,变量,let和标签模式构造函数在Winery中如何工作?

如何在类构造函数中为Map类型变量分配默认值?

C#如何使用存储在构造函数变量中的类名创建新对象?

如何调用在文本变量中具有其名称的类构造函数?[Python]

如何在Javascript的类构造函数中访问分配给对象的变量名?

如何实现从其基类中获取变量的构造函数?

如何从父类构造函数中获取变量并在子类中使用它?

如何通过使用C ++中的构造函数获取父类的变量来在子类中实现Abstarct类的方法

如何在 JavaScript 的构造函数中使用类变量?

如何从类中的函数中获取变量?

类构造函数:如何在列表中设置默认类

类如何在递归函数中工作?

React钩子:如何在类组件中在构造函数中初始化的功能组件中编写变量

变量在lambda函数中如何工作?

变量在 range() 函数中如何工作?

如何访问Promise then()函数中的类变量?

如何在类函数中编辑变量?

Spring依赖项注入如何在带有@Component注释但没有构造函数注释的类中工作?

隐式类构造如何在C ++中工作?

每个类中的此构造方法如何工作?