0

我对 Node.js 比较陌生。我想将环境变量从 .env 文件导出到我的 javascript 文件中。为了做到这一点,我正在使用 dotenv。

我应该使用哪种方法将环境变量导出到我的主要 javascript 文件(say-app.js)

export GEOCODER_API_KEY= someKeyXYZ // inside .env file

GEOCODER_API_KEY_1 = someKeyXYZ // inside .env file

需要注意的一点是,在 app.js 中的 console.log(process.env) 中,GEOCODER_API_KEY_1 显示为 env 变量,而不是 GEOCODER_API_KEY?这是为什么。那么第一个有什么用,因为它无法访问?更令人困惑的是:

var options = {
  provider: 'google',
  httpAdapter: 'https',
  apiKey: process.env.GEOCODER_API_KEY,
  formatter: null
};  // this works

... // some javascript
console.log(process.env.GEOCODER_API_KEY) //SHOWS UNDEFINED

我基本上想将 API_KEY(不受限制)安全地导出到我的项目中。有没有我可能会错过的问题?

4

1 回答 1

1

在文件中编写可移植变量声明的正确方法.env是:

FOO=BAR

这是 - 当您使用dotenv 之dotenv类的实现时。

require('dotenv').config();

console.log(process.env);

在 Unix/Bash 环境中使用 export in.env时(您可能已经在野外看到过) - 获取文件将产生与声明变量范围有关的差异:

# .env
export GEOCODER_API_KEY=someKeyXYZ
GEOCODER_API_KEY_1=someKeyXYZ
# main.sh

#!/bin/bash

. ./.env

./subprocess.sh
# subprocess.sh
#!/bin/bash

echo "GEOCODER_API_KEY": $GEOCODER_API_KEY

echo "GEOCODER_API_KEY_1": $GEOCODER_API_KEY_1
./main.sh
GEOCODER_API_KEY: someKeyXYZ
GEOCODER_API_KEY_1:
于 2019-10-01T07:29:03.367 回答