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

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

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


当前回答

我发现了一个很好的工具。

node-env-file

解析并加载环境文件(包含ENV变量导出)到Node.js环境,即process。env -使用这种风格:

.env

# some env variables

FOO=foo1
BAR=bar1
BAZ=1
QUX=
# QUUX=

其他回答

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

PORT=80
DB_NAME=foo
SOME_URL=example.com

现在这样运行node:

source ./local_env ; node index.js

只需在命令行上提供env值

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

如果你想要一个管理选项,试试envs npm包。如果设置了环境值,则返回环境值。否则,您可以指定一个默认值,该值存储在全局默认对象变量中(如果不在您的环境中)。

使用.env (" . ee-en-vee")或环境文件有很多好处。个人可以管理自己的配置。您可以使用自己的环境设置将不同的环境(dev、stage、prod)部署到云服务中。你可以设置合理的默认值。

在你的.env文件中,每一行都是一个条目,就像下面这个例子:

NODE_ENV=development
API_URL=http://api.domain.com
TRANSLATION_API_URL=/translations/
GA_UA=987654321-0
NEW_RELIC_KEY=hi-mom
SOME_TOKEN=asdfasdfasdf
SOME_OTHER_TOKEN=zxcvzxcvzxcv

您不应该在版本控制存储库中包含.env(将其添加到.gitignore文件中)。

要将.env文件中的变量导入到环境中,可以在启动应用程序之前使用bash脚本执行导出NODE_ENV=development的等效操作。

#!/bin/bash
while read line; do export "$line";
done <source .env

然后在你的应用javascript中:

var envs = require('envs');

// If NODE_ENV is not set, 
// then this application will assume it's prod by default.
app.set('environment', envs('NODE_ENV', 'production')); 

// Usage examples:
app.set('ga_account', envs('GA_UA'));
app.set('nr_browser_key', envs('NEW_RELIC_BROWSER_KEY'));
app.set('other', envs('SOME_OTHER_TOKEN));

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

-S cross-env

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

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

如果你正在使用visual studio代码调试功能,你可以添加"envFile": "${workspaceRoot}/。Env”启动配置。这样你就不用用dotenv了。

{
        "cwd": "${workspaceRoot}",
        "command": "npm start",
        "name": "Run be",
        "request": "launch",
        "type": "node-terminal",
        "envFile": "${workspaceRoot}/.env"
},