前言
一般來說:一個好的項目配置應該滿足以下條件:
在多人開發 nodejs 項目的時候,沒有規劃好配置方案,配置文件的問題就很容易暴露出來。
痛點
在開發 nodejs 的工程中,遇到過三個痛點
解決方案
部署環境不同
對于部署環境不同,相對容易解決,建立相應環境的配置文件,比如:
再建一個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后修改配置項符合自己的開發配置。
安全地配置
對于項目一些安全性要求高的配置項,我們應該從配置文件脫離出來,只能在當前的運行進程可以獲取, 配置文件的配置項再讀取進程的配置項值,比如數據庫密碼, 一般做法如下:
productionConfig.js
module.exports = { database: { user: process.env.user || 'root', password: process.env.password || 'yfwzx2019' }}而更隱秘的辦法是,你根本不知道我用環境變量覆蓋了配置項值,比如:
productionConfig.js
module.exports = { database: { user: 'root', password: 'yfwzx2019' }}一般人拿到了這個配置,就會以為數據庫的賬號密碼就是root、yfwzx2019,其實最后會被環境變量的值覆蓋,運行如下:
新聞熱點
疑難解答
圖片精選