我试着跟着教程,上面写着:
有几种方法可以加载凭据。 从环境变量加载, 从磁盘上的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
其他回答
如果你想要一个管理选项,试试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));
如果你正在使用visual studio代码调试功能,你可以添加"envFile": "${workspaceRoot}/。Env”启动配置。这样你就不用用dotenv了。
{
"cwd": "${workspaceRoot}",
"command": "npm start",
"name": "Run be",
"request": "launch",
"type": "node-terminal",
"envFile": "${workspaceRoot}/.env"
},
环境变量(在本例中)用于向应用程序传递凭据。USER_ID和USER_KEY都可以从process.env中访问。USER_ID和process.env。USER_KEY分别。你不需要编辑它们,只需要访问它们的内容。
看起来他们只是让你选择从任何一个进程加载你的USER_ID和USER_KEY。Env或磁盘上的某个指定文件。
现在,当您运行应用程序时,奇迹发生了。
USER_ID=239482 USER_KEY=foobar节点app.js
这将传递用户id 239482和用户密钥作为foobar。这适用于测试,但是对于生产,您可能需要配置一些bash脚本来导出变量。
步骤1:将环境变量添加到相应的文件中。例如,您的登台环境可以称为.env。其中包含特定于登台环境的环境变量USER_ID和USER_KEY。
第二步:包装。Json文件,添加以下内容:
"scripts": {
"build": "sh -ac '. ./.env.${REACT_APP_ENV}; react-scripts build'",
"build:staging": "REACT_APP_ENV=staging npm run build",
"build:production": "REACT_APP_ENV=production npm run build",
...
}
然后在部署脚本中像这样调用它:
npm run build:staging
超级简单的设置和工作就像一个魅力!
来源:https://medium.com/@tacomanator environments-with-create-react-app-7b645312c09d
我在设置系统环境变量后得到了未定义。当我把APP_VERSION放在用户环境变量中,然后我可以通过process.env.APP_VERSION显示节点的值