使用node-config+dotenv 方便的管理配置
时间:2020-05-30
本文章向大家介绍使用node-config+dotenv 方便的管理配置,主要包括使用node-config+dotenv 方便的管理配置使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
dotenv 是遵循12 factor 的一个环境变量管理npm 包,node-config 是一个强大的配置管理npm 包,我们集成起来
可以进行方便的配置管理,以下是一个简单使用说明
环境准备
- node 环境
yarn init -y
yarn add dotenv config
- npm script
{
"dependencies": {
"config": "^3.3.1",
"dotenv": "^8.2.0"
},
"scripts": {
"app":"node app.js"
}
}
- 项目结构
├── app.js
├── .env
├── config
│ ├── custom-environment-variables.json
│ ├── default.json
│ └── stage.json
├── package.json
└── yarn.lock
- 简单说明
default.json 为默认的配置,stage.json 为stage 的配置,custom-environment-variables.json为环境变量替换的模版
.env 为基于dotenv 管理的一个env 配置,按照node-config 的约定,环境变量包含了NODE_ENV=stage 会走stage 的配置
同时如果.env 包含了内容会自动替换,没有的为空,同时custom-environment-variables.json 的对象会有激活的配置合并
(当然对于重复的,custom-environment-variables会覆盖)
default.json
{
"apps":{
"users":{
"name":"dalong",
"age":333
}
}
}
stage.json
{
"apps":{
"users":{
"name":"stage",
"age":333
}
}
}
custom-environment-variables.json
{
"username": "USERNAME",
"userpassword":"USERPASSWORD"
}
.env
USERNAME=dalong
USERPASSWORD=dalong
NODE_ENV=stage
- app.js 代码
require("dotenv").config()
const config = require("config")
console.log(config)
console.log('NODE_APP_INSTANCE: ' + config.util.getEnv('NODE_ENV'));
运行&&效果
- 运行
yarn app
- 效果
说明
集成node-config 以及dotenv 我们可以实现灵活的系统配置管理,同时方便配置的引用,还是比较方便的
参考资料
https://github.com/lorenwest/node-config/wiki/Configuration-Files
https://www.npmjs.com/package/dotenv
https://github.com/rongfengliang/dotenv_node-config-learning
原文地址:https://www.cnblogs.com/rongfengliang/p/12993767.html
- TCP/IP(一)之开启计算机网络之路
- JSON入门指南--客户端处理JSON
- mysql5.7 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- TCP/IP中你不得不知的十大秘密
- Java Web开发学习之路2012版
- TortoiseSVN客户端使用的2个配置问题
- JavaWeb(二)会话管理之细说cookie与session
- 概率论09 期望
- Javascript中数组的sort()和reverse()方法
- CentOS6.5开放端口,配置防火墙
- JavaWeb(一)Servlet中乱码解决与转发和重定向的区别
- Java魔法堂:四种引用类型、ReferenceQueue和WeakHashMap
- Javascript中数组的使用
- JavaWeb(一)Servlet中的request与response
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- XtraBackup工具详解 Part 6 使用innobackupex对全备进行恢复
- [修正]XtraBackup工具详解 Part 6 使用innobackupex对全备进行恢复
- XtraBackup工具详解 Part 7 使用innobackupex对数据库进行增量备份
- XtraBackup工具详解 Part 8 使用innobackupex对增量备份进行恢复
- MySQL复制全解析 Part 2 一步步搭建基于二进制文件位置的MySQL复制
- MySQL复制全解析 Part 3 MySQL半同步复制设置
- MySQL 复制全解析 Part 4 使用备库搭建MySQL复制
- MySQL复制全解析 Part 5 MySQL GTID的格式和存储
- MySQL复制全解析 Part 6 MySQL GTID 生命周期
- MySQL复制全解析 Part 7 gtid_next和gtid_purged系统变量解析
- MySQL复制全解析 Part 8 GTID Auto-Positioning
- 红队之windows用户和组
- MySQL 复制全解析 Part10 基于GTID的MySQL复制的一些限制
- MySQL 复制全解析 Part 11 使用xtrabackup建立MySQL复制
- windows之NTLM认证