乐趣区

nodejs 配置文件处理方案

前言
一般来说:一个好的项目配置应该满足以下条件:

依赖环境:配置根据具体运行环境从相应的文件读取

代码分离:配置项不仅可以从配置文件读取,也可以从环境变量读取,使得安全隐秘的配置项与代码分离

易于使用:配置项应该是分层配置有助于查找条目和维护庞大的配置文件的,应该是容易组织和容易获取的

在多人开发 nodejs 项目的时候,没有规划好配置方案,配置文件的问题就很容易暴露出来。
痛点
在开发 nodejs 的工程中,遇到过三个痛点

部署环境不同:开发、测试、生产环境的不同,导致配置的不同

开发环境不同:开发者的开发环境配置不同,会存在同一个配置文件配置代码不同,影响 git 提交更新

安全问题:一些配置不应该明文保存在项目代码里面,比如数据库密码

解决方案
部署环境不同
对于部署环境不同,相对容易解决,建立相应环境的配置文件,比如:

开发环境配置:developmentConfig.js
测试环境配置:testConfig.js
生产环境配置:productionConfig.js

再建一个 config.js 配置文件作为入口获取配置,如下:
module.exports = require(`./${process.env.NODE_ENV}Config.js`)
引用配置的时候,只要引用 config.js 即可。运行命令如下:
NODE_ENV=development node index.js
开发环境不同
对于开发环境不同,导致每个人的 developmentConfig.js 不同,这个不能要求别人的配置和你的一样,这样项目就太硬了。我们可以把 developmentConfig.js 添加到.gitignore,从而从项目分离出来,再在 readme.md 说明如何配置 developmentConfig.js。最好是建立一个 developmentConfig.example.js,并在文档说明复制成 developmentConfig.js 后修改配置项符合自己的开发配置。

退出移动版