1. 安装依赖
按下图所示安装相关依赖。
bash
{
"name": "demo0",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"dev": "cross-env NODE_ENV=development node index.js",
"prod": "cross-env NODE_ENV=production node index.js"
},
"keywords": [ ],
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"config": "^4.1.1",
"cross-env": "^10.1.0",
"dotenv": "^17.2.3",
"js-yaml": "^4.1.1"
}
}
安装完cross-env依赖后,为了测试不同的启动环境,需要添加两个不同的启动环境变量。
2. dotenv的使用
这个工具库适合配置一些简单的环境变量,格式只能是键值对这种格式的,不支持嵌套和对象格式。
新建一个.env文件在项目根目录下,添加如下变量:
javascript
TOKEN_SECRET = "your_secret_token_here_env"
DATABASE_URL = "postgresql://user:password@localhost:5432/yourdatabase"
然后在文件中就可以如下方式获取.env里面配置的环境变量。
javascript
require('dotenv').config();
console.log(process.env)
输出结果如下所示,在.env里面配置的变量就可以看到了。

3. config的使用
这个工具库可以配置一些比较复杂的数据格式,比如常见的json格式。
在项目根目录下新建一个config的文件夹,添加default.json文件,这个文件里是默认配置。
javascript
{
"token_secret": "long-token_secret",
"database": {
"host": "www.default.com",
"port": 9526,
"name": "my_database",
"password": "db_password"
}
}
然后在文件中就可以用以下方式获取配置的环境变量。
javascript
const config = require('config');
const databaseConfig = config.get('database');
console.log(databaseConfig);
需要区分环境可以分别添加development.json和production.json这两个文件。
javascript
{
"database": {
"host": "www.production.com",
"port": 9529
}
}
当默认配置和生产环境配置共存时,执行生产环境的启动命令时,生产环境中定义配置将会与默认配置进行合并,相同的变量名将会被生产环境的覆盖。
开发环境的也同样如此,只需要另外定义一个development.json即可。
以下是在生产环境合并后的输出:

config这个库不仅支持json文件的配置 ,还支持其它很多文件类型的配置,比如yaml文件类型的配置,需要注意的是,为了解析yaml的文件类型,需要安装相应的解析器js-yaml。

以下是关于yaml的配置信息,可以结合上面的输出结果来看。
default.yaml
javascript
"token_secret": "long-token_secret"
"database":
"host": "www.default.com"
"port": 8080
"name": "database_name"
"password": "123456"
development.yaml
javascript
"database":
"host": "www.development.com"
"port": 9527
production.yaml
javascript
"database":
"host": "www.production.com"
"port": 9528