我试着跟着教程,上面写着:

有几种方法可以加载凭据。 从环境变量加载, 从磁盘上的JSON文件加载, 关键字如下: USER_ID, USER_KEY ...这意味着如果您正确地设置了环境变量,您就可以 根本不需要在应用程序中管理凭据。

根据一些谷歌搜索,似乎我需要在process.env?我如何以及在哪里设置这些凭证?示例请。


当前回答

我成功使用过的处理环境变量的好方法如下:

A.使用不同的配置文件:

Dev.js //这里只包含所有用于开发的环境变量 该文件包含: 模块。出口= { ENV:“开发”, someEnvKey1: '一些DEV Value1', someEnvKey2: 'some DEV Value2' }; js //只包含所有用于开发的环境变量 .. qa.js //这里只包含qa测试的所有环境变量 该文件包含: 模块。出口= { ENV:“开发”, someEnvKey1: '一些QA Value1', someEnvKey2: '一些QA Value2' };

注意:大多数情况下,值会随着环境的变化而变化,但键保持不变。

你可以有更多 Z__prod.js //只包含生产/活动的所有环境变量 注意:此文件从未捆绑用于部署 将所有这些配置文件放在/config/文件夹中 < projectRoot > / config / dev.js < projectRoot > / config / qa.js < projectRoot > / config / z__prod.js < projectRoot > / setenv.js < projectRoot > / setenv.bat < projectRoot > / setenv.sh

注意:prod的名称与其他名称不同,因为它不会被所有人使用。

B.从配置文件中设置OS/ Lambda/ AzureFunction/ GoogleCloudFunction环境变量

理想情况下,文件中的这些配置变量应该作为OS环境变量(或LAMBDA函数变量,或Azure函数变量,谷歌云函数等)。

因此,我们在Windows操作系统(或其他)中编写自动化

假设我们编写“setenv”bat文件,其中一个参数是我们想要设置的环境 现在运行"setenv dev"

a)从传入的参数变量(现在是'dev')获取输入 B)读取相应的文件('config\dev.js') c)设置Windows操作系统(或其他)中的环境变量

例如,

setenv.bat的内容可能是:

    node setenv.js

setenv.js的内容可能是:

    // import "process.env.ENV".js file (dev.js example)
    // loop the imported file contents
    //     set the environment variables in Windows OS (or, Lambda, etc.)

至此,您的环境就可以使用了。

当你执行“setenv qa”时,所有的qa环境变量都可以从qa.js中使用,并且可以由相同的程序(总是要求process.env. qa)使用。someEnvKey1,但它得到的值是qone)。

希望这能有所帮助。

其他回答

创建一个名为local-env的文件,并用变量填充它

PORT=80
DB_NAME=foo
SOME_URL=example.com

现在这样运行node:

source ./local_env ; node index.js

使用cross-env。这会让你免去很多头疼的事情

-S cross-env

cross-env PARAM=value node ./index.js

这通常适用于非凭证。比如证书和钥匙 最好不要存储硬编码的用户id和密码,而是使用不在repo和dotenv中的.env文件

如果你使用的是mac/linux,你想检索你正在使用的机器的本地参数,这是你要做的:

在终端运行nano ~/.bash_profile 添加如下一行:export MY_VAR=var 保存并运行source ~/.bash_profile 在节点中使用console.log(process.env.MY_VAR);

我成功使用过的处理环境变量的好方法如下:

A.使用不同的配置文件:

Dev.js //这里只包含所有用于开发的环境变量 该文件包含: 模块。出口= { ENV:“开发”, someEnvKey1: '一些DEV Value1', someEnvKey2: 'some DEV Value2' }; js //只包含所有用于开发的环境变量 .. qa.js //这里只包含qa测试的所有环境变量 该文件包含: 模块。出口= { ENV:“开发”, someEnvKey1: '一些QA Value1', someEnvKey2: '一些QA Value2' };

注意:大多数情况下,值会随着环境的变化而变化,但键保持不变。

你可以有更多 Z__prod.js //只包含生产/活动的所有环境变量 注意:此文件从未捆绑用于部署 将所有这些配置文件放在/config/文件夹中 < projectRoot > / config / dev.js < projectRoot > / config / qa.js < projectRoot > / config / z__prod.js < projectRoot > / setenv.js < projectRoot > / setenv.bat < projectRoot > / setenv.sh

注意:prod的名称与其他名称不同,因为它不会被所有人使用。

B.从配置文件中设置OS/ Lambda/ AzureFunction/ GoogleCloudFunction环境变量

理想情况下,文件中的这些配置变量应该作为OS环境变量(或LAMBDA函数变量,或Azure函数变量,谷歌云函数等)。

因此,我们在Windows操作系统(或其他)中编写自动化

假设我们编写“setenv”bat文件,其中一个参数是我们想要设置的环境 现在运行"setenv dev"

a)从传入的参数变量(现在是'dev')获取输入 B)读取相应的文件('config\dev.js') c)设置Windows操作系统(或其他)中的环境变量

例如,

setenv.bat的内容可能是:

    node setenv.js

setenv.js的内容可能是:

    // import "process.env.ENV".js file (dev.js example)
    // loop the imported file contents
    //     set the environment variables in Windows OS (or, Lambda, etc.)

至此,您的环境就可以使用了。

当你执行“setenv qa”时,所有的qa环境变量都可以从qa.js中使用,并且可以由相同的程序(总是要求process.env. qa)使用。someEnvKey1,但它得到的值是qone)。

希望这能有所帮助。

只需在命令行上提供env值

USER_ID='abc' USER_KEY='def' node app.js