前言
在進入短網址產生器的實作前會先插入幾篇文章,會幫助我們後續練習時更加順利 。
今天要講的概念是利用dotenv或是config套件去隱藏敏感資訊,未來在開發時你勢必會將你的產品透過各種管道發布出去,當使用者使用你的產品時,你自然不希望把一些開發用到的密鑰暴露出去,不然可能就會有人透過該密鑰去胡搞瞎搞。
這是coding中一個很重要的概念:「不要寫明碼」,一些重要的資訊我們只希望開發者本身知道就好,那要如何隱藏這些資訊呢?本篇文章會介紹我自己常用的兩種做法,可以選自己比較喜歡的方式做~!
利用dotenv設定環境變數
dotenv是一個可協助你設定環境變數的npm套件(官方文件連結), 安裝後透過建立一個.env檔案將重要的資訊存放其中,這時候你存放的變數會同步存放在process.env.變數名稱中,來看個簡單的例子便可以很快得了解。
首先在終端機輸入以下指令安裝dotenv套件
npm i dotenv
接著在專案資料夾內新增一個.env檔案,其中放入你想隱藏的變數資料
.env

接著在app.js內引入套件並印出,注意一下你所設置的環境變數會存在 process.env.變數名稱 中。
app.js
//告訴node你要用環境變數
require('dotenv').config()
console.log(process.env.My_Bank_Account) // secretAccount
如何?很簡單的使用方式吧?接著我們看看如何利用另一個config套件做到類似的事情!
利用config設定環境變數
config同樣也是一個很熱門的npm套件(官方文件連結),使用上也相當容易,藉由將變數以json方式存為全域變數來使用,一樣我們看個簡單的例子就可以了解使用方式。
首先在終端機輸入以下指令安裝config套件
npm i config
安裝完成後在專案目錄下新增config資料夾並新增default.json檔案,等等會從這邊抓變數資料。
config/default.json
{
"password": "32154236"
}
回到app.js中取出變數,取出的方法也相當簡單,我們需要用到config.get方法。
app.js
//告訴node你要用環境變數
require('dotenv').config()
const config = require('config')
//從default.json中取出剛剛建立的密碼資料
const password = config.get('password')
console.log(process.env.My_Bank_Account); // secretAccount
console.log(password); // 32154236
兩種方式都相當簡單~!之後可別再傻傻地把應用程式id之類的訊息寫在程式中囉!
結語
這篇文章中我們學會了如何隱藏敏感資訊的方式,你當然可以搭配一些條件式去決定你什麼時候要使用這些環境/全域變數,並在未來產品發布時能使程式順利運作又不至於洩漏重要資訊~!
順帶一提我個人是兩種方式會交互著使用,端看當時的開發情況:D