您可以通过以下方式检查config() 的结果(确保.env-文件在这种情况下位于根目录中):
require('dotenv').config()
const result = dotenv.config()
if (result.error) {
throw result.error
}
console.log(result.parsed)
并查看它是否配置正确。 -> 在dotenv上查看更多信息
我个人更喜欢使用env_config.js 文件来处理我的环境并在需要时需要它(即app.js)。
env_config.js:
var path = require('path');
const dotenvAbsolutePath = path.join(__dirname, '.env');
/* INFO: Require dotenv package for retieving and setting env-vars at runtime via absoliute path due to pkg */
const dotenv = require('dotenv').config({
path: dotenvAbsolutePath
});
if (dotenv.error) {
console.log(`ERROR WHILE READING ENV-VARS:${dotenv.error}`);
throw dotenv.error;
}
module.exports = {
nodeEnv: process.env.NODE_ENV,
nodePort: process.env.NODE_PORT,
deviceLocation: process.env.DEVICE_LOCATION,
hostWLC: process.env.HOST_WLC,
hostPostgresql: process.env.HOST_POSTGRESQL,
portPostgresql: process.env.PORT_POSTGRESQL,
dbPostgresql: process.env.DB_POSTGRESQL,
userPostgresql: process.env.USER_POSTGRESQL,
pwdPostgresql: process.env.PWD_POSTGRESQL,
hostMQTT: process.env.HOST_MQTT,
portMQTT: process.env.PORT_MQTT,
userMQTT: process.env.USER_MQTT,
pwdMQTT: process.env.PWD_MQTT,
};
app.js:
const { nodePort } = require('./env-config');
....
...
..
app.listen(nodePort, () => console.log(`Node's Express someApp is listening on Port ${nodePort}..`));
.env 文件(在根目录中):
NODE_ENV=******
NODE_PORT=******
DEVICE_LOCATION=******
HOST_WLC=******
HOST_POSTGRESQL=******
PORT_POSTGRESQL=******
DB_POSTGRESQL=******
USER_POSTGRESQL=******
PWD_POSTGRESQL=******
HOST_MQTT=******
PORT_MQTT=******
USER_MQTT=******
PWD_MQTT=******
正常使用根据官方文档:
尽早在您的应用程序中要求并配置 dotenv。
require('dotenv').config()
在项目的根目录中创建一个 .env 文件。以 NAME=VALUE 的形式在新行中添加特定于环境的变量。例如:
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
process.env 现在拥有您在 .env 文件中定义的键和值。
const db = require('db')
db.connect({
host: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASS
})