我试着跟着教程,上面写着:
有几种方法可以加载凭据。 从环境变量加载, 从磁盘上的JSON文件加载, 关键字如下: USER_ID, USER_KEY ...这意味着如果您正确地设置了环境变量,您就可以 根本不需要在应用程序中管理凭据。
根据一些谷歌搜索,似乎我需要在process.env?我如何以及在哪里设置这些凭证?示例请。
我试着跟着教程,上面写着:
有几种方法可以加载凭据。 从环境变量加载, 从磁盘上的JSON文件加载, 关键字如下: USER_ID, USER_KEY ...这意味着如果您正确地设置了环境变量,您就可以 根本不需要在应用程序中管理凭据。
根据一些谷歌搜索,似乎我需要在process.env?我如何以及在哪里设置这些凭证?示例请。
当前回答
就像ctrlplusb说的,我建议你使用包dotenv,但另一种方法是创建一个js文件,并要求它在你的应用服务器的第一行。
js:
process.env.VAR1="foo"
process.env.VAR2="bar"
app.js:
require('./env') // env.js relative path.
console.log(process.env.VAR1) // foo
其他回答
这取决于您的操作系统和shell
在linux上使用shell bash,你可以在控制台中创建这样的环境变量:
export FOO=bar
有关ubuntu环境变量的更多信息(例如):
ubuntu上的环境变量
如果你正在使用visual studio代码调试功能,你可以添加"envFile": "${workspaceRoot}/。Env”启动配置。这样你就不用用dotenv了。
{
"cwd": "${workspaceRoot}",
"command": "npm start",
"name": "Run be",
"request": "launch",
"type": "node-terminal",
"envFile": "${workspaceRoot}/.env"
},
很像其他答案,但没有任何lib或(bash)导出。
我有一些加密的变量,然后我需要在飞行中生成它们。
神奇发生在set -a &&…&& set +a可以是一些内容或文件。
#!/bin/sh
set -a
SOMEVAR_A="abcd"
SOMEVAR_B="efgh"
SOMEVAR_C=123456
set +a
# or
set -a && . ./file && set +a
我有一个docker-entrypoint.sh:
#!/bin/sh
node app/config/set-environment.js
ENVFILE=/tmp/.env
if [[ ! -f "$ENVFILE" ]] ; then
echo "File $ENVFILE is not there, aborting."
exit
fi
# here is where things happen
set -a && . $ENVFILE && set +a
if [ "${NODE_ENV}" = "development" ]; then
npx nodemon app/server.js
else
node app/server.js
fi
exec "$@"
而set-environment.js生成一个(tmp) .env文件
创建一个名为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文件