在Node.js中使用.env文件管理環(huán)境變量的全過程
引言
Node.js 應(yīng)用程序通常依賴于環(huán)境變量來管理敏感信息或配置設(shè)置。.env 文件已經(jīng)成為一種流行的本地管理這些變量的方法,而無需在代碼存儲庫中公開它們。本文將探討 .env 文件為什么重要,以及如何在 Node.js 應(yīng)用程序中有效的使用它。
為什么使用 .env 文件 ?
Security
在源代碼中保留敏感信息 (如 API 密鑰、數(shù)據(jù)庫憑據(jù)) 可能會將它們暴露給意想不到的訪問者。將此數(shù)據(jù)分離到特定于環(huán)境的文件中,您可以使用 .gitignore 輕松地將其排除在版本控制之外。
Configurability
隨著應(yīng)用程序的迭代增長,它們可能需要針對不同環(huán)境 (開發(fā)、測試、生產(chǎn)) 使用不同配置。使用 .env 文件有助于在配置和代碼之間保持清晰的分離。
Portability
通過在代碼中引用環(huán)境變量,您可以維護一個易于在不同環(huán)境之間移動的一致的代碼庫,只需要更新 .env 文件或給定部署的實際環(huán)境變量。
如何在 Node.js 中使用 .env 文件
1. Creating the .env file
在項目的根目錄中創(chuàng)建一個 .env 文件,環(huán)境變量定義:key = value
DATABASE_URL=mongodb://localhost:27017/mydb SECRET_KEY=my-secret-key API_KEY=abcdef123456
2. Ignoring the .env file
為了防止你的 .env 文件提交到存儲庫,將其添加到 .gitignore 文件中。
# .gitignore node_modules/ .env
3. Reading the .env file in your application
Node.js 應(yīng)用程序訪問 .env 文件中定義的變量,通常會使用 dotenv 軟件包。
npm install dotenv
在主應(yīng)用程序文件的頂部(通常是 index.js 或 server.js),導入并配置 dotenv
require('dotenv').config();
console.log(process.env.DATABASE_URL); // Outputs: mongodb://localhost:27017/mydb
通過調(diào)用 dotenv.config(), .env 文件中的所有變量加載到 process.env,它們在整個應(yīng)用程序中都可以訪問。
4. Using environment variables in the application
既然已經(jīng)加載了環(huán)境變量,就可以在整個應(yīng)用程序中使用它們了。例如,當連接到 MongoDB 實例時
const mongoose = require('mongoose');
mongoose.connect(process.env.DATABASE_URL, { useNewUrlParser: true, useUnifiedTopology: true });
或者在配置 API 時
const apiKey = process.env.API_KEY;
最佳實踐
Never commit your .env file:
一定要確保 .env 文件被添加到你的 .gitignore 文件中。
Use descriptive variable names
清晰的名稱使團隊成員更容易理解每個變量的用途。
Provide a .env.example
與其共享 .env 文件,不如創(chuàng)建一個 .env.example 文件,包含所有鍵但不包含值,這可以作為團隊成員或部署的模板。
Use fallbacks
有時,您可能希望在缺少環(huán)境變量的情況下提供一個默認值。
const apiKey = process.env.API_KEY || 'default-api-key';
Don’t over-rely on .env
對于較大的應(yīng)用程序或微服務(wù)架構(gòu),請考慮使用專用的配置管理系統(tǒng)或服務(wù)。
到此這篇關(guān)于在Node.js中使用.env文件管理環(huán)境變量的全過程的文章就介紹到這了,更多相關(guān)Node .env文件管理環(huán)境變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nodejs中獲取當前函數(shù)被調(diào)用的行數(shù)及文件名詳解
這篇文章主要給大家介紹了關(guān)于Nodejs中獲取當前函數(shù)被調(diào)用的行數(shù)及文件名的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-12-12
Linux 安裝nodejs環(huán)境及路徑配置詳細步驟
大家都知道linux安裝nodejs有兩種比較常用的方法,一種解壓即可用的方法操作比較簡便,另一種方法通過編譯來安裝,本文重點給大家講解第一種方法,感興趣的朋友跟隨小編一起看看吧2021-11-11
node.js實現(xiàn)pdf與圖片互轉(zhuǎn)代碼示例
因工作需求,記錄一次如何在Node中pdf與圖片互轉(zhuǎn)各種操作,這篇文章主要給大家介紹了關(guān)于node.js實現(xiàn)pdf與圖片互轉(zhuǎn)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-04-04
關(guān)于Node.js中Buffer的一些你可能不知道的用法
網(wǎng)上關(guān)于Node.js中Buffer用法的文章有很多,但是感覺還是不夠詳細,所以這篇文章主要介紹了關(guān)于Node.js中Buffer的一些你可能不知道的用法,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03

