我试着跟着教程,上面写着:
有几种方法可以加载凭据。 从环境变量加载, 从磁盘上的JSON文件加载, 关键字如下: USER_ID, USER_KEY ...这意味着如果您正确地设置了环境变量,您就可以 根本不需要在应用程序中管理凭据。
根据一些谷歌搜索,似乎我需要在process.env?我如何以及在哪里设置这些凭证?示例请。
我试着跟着教程,上面写着:
有几种方法可以加载凭据。 从环境变量加载, 从磁盘上的JSON文件加载, 关键字如下: USER_ID, USER_KEY ...这意味着如果您正确地设置了环境变量,您就可以 根本不需要在应用程序中管理凭据。
根据一些谷歌搜索,似乎我需要在process.env?我如何以及在哪里设置这些凭证?示例请。
当前回答
windows用户:小心!建议在Unix系统下使用这些命令。但在Windows上,它们不会持续存在,它们只在当前shell中设置了一个变量,当你重新启动时,它就会消失。
SET TEST="hello world" $env:TEST = "hello world"
Windows下设置持久环境变量的3种方法:
A) .env文件在你的项目-最好的方法。因为你可以将该文件复制到任何计算机,并在运行项目时获得相同的配置。
在你的项目根目录下创建一个。env文件,内容如下:TEST="hello world" 编写一些将读取该文件的节点代码。我建议安装dotenv (npm install dotenv——save),然后添加require('dotenv').config();在节点设置代码期间。 process.env.TEST现在在node中可用
env文件是将api-key排除在代码库之外的一种好方法
B)使用Powershell -这将创建一个变量,可在其他终端访问。但这很糟糕,因为重启电脑后它就会丢失。
[Environment]::SetEnvironmentVariable("TEST", "hello world", "User")
这种方法在Windows论坛上被广泛推荐,人们似乎没有意识到在系统重新启动后它不会持续....
C)使用Windows GUI
在开始菜单中搜索“环境变量”或在控制面板中选择“编辑系统环境变量”。打开一个对话框,点击对话框底部的“环境变量”按钮,打开一个编辑视图,点击“新建”按钮,添加一个新的环境变量。一件容易的事。并且即使在重新启动后仍然存在。但您不应该使用它来配置特定的代码库。
其他回答
创建一个名为local-env的文件,并用变量填充它
PORT=80
DB_NAME=foo
SOME_URL=example.com
现在这样运行node:
source ./local_env ; node index.js
可以通过process global variable设置环境变量,方法如下:
process.env['NODE_ENV'] = 'production';
适用于所有平台。
就像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
使用dotenv-webpack让您的生活更轻松。简单地安装它npm install dotenv-webpack——save-dev,然后在你的应用程序的根目录下创建一个。env文件(记得在你推送git之前把它添加到。gitignore中)。打开这个文件,设置一些环境变量,例如:
ENV_VAR_1=1234
ENV_VAR_2=abcd
ENV_VAR_3=1234abcd
现在,在你的webpack配置中添加:
const Dotenv = require('dotenv-webpack');
const webpackConfig = {
node: { global: true, fs: 'empty' }, // Fix: "Uncaught ReferenceError: global is not defined", and "Can't resolve 'fs'".
output: {
libraryTarget: 'umd' // Fix: "Uncaught ReferenceError: exports is not defined".
},
plugins: [new Dotenv()]
};
module.exports = webpackConfig; // Export all custom Webpack configs.
只有const Dotenv = require(' Dotenv -webpack');,插件:[new Dotenv()],当然还有模块。出口= webpackConfig;//导出所有Webpack配置。是必需的。然而,在某些情况下,您可能会得到一些错误。对于这些问题,你也有解决方案,这意味着你可以修复某些错误。
现在,你可以在任何地方使用process.env。ENV_VAR_1 process.env。ENV_VAR_2 process.env。应用程序中的ENV_VAR_3。
只需在命令行上提供env值
USER_ID='abc' USER_KEY='def' node app.js