分享个人 Full-Stack JavaScript 项目开发经验
应用程序在不同的部署之间(开发环境、预发布、生产环境等),配置会有很大差别。在十二因素应用程序的方法论中要求代码和配置严格分离,并推荐在环境变量中存储配置。基于 Node.js 的应用程序,我们可以使用 dotenv 模块将 .env 文件的环境变量配置载入到环境变量对象 process.env 中。下面介绍该模块的简单使用:
yarn add dotenv
# database config
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
配置变量以 NAME=VALUE 的方式设置,每个配置单独占一行,可使用 # 添加行备注信息。
在 app 使用到配置环境变量前,以 require 方式载入。其中参数 path 的默认值为 Node.js 进程工作目录下的 .env 文件。
require('dotenv').config({ path: '/cfg/.env' })
另一种是通过 --require (-r) 命令行方式在启动应用程序时预载入。这种方式的好处是你不需要在程序代码中使用 dotenv。如果你项目使用了 import 代替 require 时也可以使用这种方式。
node -r dotenv/config bin/www dotenv_config_path=/cfg/.env
const db = require('db')
db.connect({
host: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASS
})
要了解 dotenv 模块的详细说明,可点击这里。