Rumah > hujung hadapan web > tutorial js > Menguruskan Pembolehubah Persekitaran dalam Node.js dengan Dotenv

Menguruskan Pembolehubah Persekitaran dalam Node.js dengan Dotenv

DDD
Lepaskan: 2025-01-30 12:30:10
asal
615 orang telah melayarinya

Managing Environment Variables in Node.js with dotenv

Apabila membangunkan aplikasi dalam node.js, menguruskan nilai konfigurasi sensitif dengan selamat adalah penting. Nilai -nilai ini seperti kekunci API, kelayakan pangkalan data, dan port pelayan -sering disimpan dalam pembolehubah persekitaran. Pakej Dotenv membolehkan kami memuatkan pembolehubah ini dari fail .env, menyimpannya dari kod sumber kami sementara masih boleh diakses dalam permohonan kami.

Dalam artikel ini, kami akan meneroka bagaimana untuk menguruskan pembolehubah persekitaran dengan cekap menggunakan dotenv dan mewujudkan fungsi utiliti untuk memastikan pembolehubah yang diperlukan sentiasa tersedia.


Mengapa menggunakan pembolehubah persekitaran?

Menggunakan pembolehubah persekitaran menyediakan beberapa faedah:

  • Keselamatan: menyimpan maklumat sensitif dari codebase.
  • Konfigurasi: Mudah menukar tetapan tanpa mengubah kod.
  • Tetapan khusus persekitaran: Gunakan nilai yang berbeza untuk persekitaran pembangunan dan pengeluaran.

Menyediakan Dotenv dalam Projek Node.js

Langkah 1: Pasang dotenv

Sebelum kita boleh menggunakan dotenv, kita perlu memasangnya dalam projek kita:

npm install dotenv
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Buat fail .env

Dalam akar projek anda, buat fail .env dan tentukan pembolehubah persekitaran anda:

PORT=5000
FRONTEND_URL=http://localhost:3000
NODE_ENV=development
DB_CONNECT=mongodb://localhost:27017/mydatabase
ACCESS_TOKEN=your-secret-access-token
Salin selepas log masuk

NOTA: Jangan lakukan fail .env anda ke repositori! Sentiasa tambahkan .env ke fail .gitignore anda.


Memuatkan Pembolehubah Persekitaran dalam Node.js

kita boleh menggunakan dotenv untuk memuatkan pembolehubah persekitaran ke dalam aplikasi Node.js kami. Kod berikut menunjukkan cara melakukan ini:

Langkah 3: Buat fail konfigurasi

import { config } from "dotenv";

config({ path: "../../.env" });

// Define all required environment variables
const envVars = {
  port: process.env.PORT || 5000,
  frontendUrl: process.env.FRONTEND_URL,
  nodeEnv: process.env.NODE_ENV as "development" | "production",
  dbConnect: process.env.DB_CONNECT,
  accessToken: process.env.ACCESS_TOKEN,
};

/**
 * This function returns an environment variable and throws an error if unavailable.
 * @param varName - The key of the environment variable.
 * @returns The value of the specified environment variable.
 */
export default function getEnv(varName: keyof typeof envVars): string {
  if (typeof envVars[varName] === "undefined") {
    console.error(`'${varName}' is not available`);
    process.exit(1);
  } else {
    return envVars[varName] as string;
  }
}
Salin selepas log masuk

Memahami kod

  1. pembolehubah persekitaran beban:
import { config } from "dotenv";
config({ path: "../../.env" });
Salin selepas log masuk

ini mengimport dotenv dan memuatkan fail .env ke dalam proses.env.

  1. Tentukan pembolehubah persekitaran yang diharapkan:
const envVars = {
  port: process.env.PORT || 5000,
  frontendUrl: process.env.FRONTEND_URL,
  nodeEnv: process.env.NODE_ENV as "development" | "production",
  dbConnect: process.env.DB_CONNECT,
  accessToken: process.env.ACCESS_TOKEN,
};
Salin selepas log masuk

kami mentakrifkan satu set pembolehubah persekitaran yang diharapkan dan memberikan nilai lalai untuk port sekiranya ia hilang.

  1. Buat fungsi untuk mendapatkan pembolehubah persekitaran dengan selamat:
export default function getEnv(varName: keyof typeof envVars): string {
  if (typeof envVars[varName] === "undefined") {
    console.error(`'${varName}' is not available`);
    process.exit(1);
  } else {
    return envVars[varName] as string;
  }
}
Salin selepas log masuk

Fungsi ini memastikan bahawa jika pemboleh ubah persekitaran hilang, aplikasi akan membuang ralat dan menamatkan bukannya gagal dengan senyap.


Menggunakan fungsi getEnv

Sekarang, apabila kita memerlukan pemboleh ubah persekitaran dalam projek kami, kami dapat mengambilnya dengan selamat seperti ini:

import getEnv from "./getEnv";

const databaseURL = getEnv("dbConnect");
console.log("Database URL:", databaseURL);
Salin selepas log masuk

Jika pemboleh ubah hilang, aplikasi akan keluar dan log ralat, memastikan kami tidak pernah menjalankan aplikasi dengan konfigurasi yang hilang.


Amalan terbaik untuk menguruskan pembolehubah persekitaran

  1. Jangan sekali -kali Rahsia Hardcode dalam permohonan anda. Sentiasa gunakan pembolehubah persekitaran.
  2. Gunakan fail .Env.Example untuk menyediakan templat untuk pembolehubah yang diperlukan.
  3. Gunakan fail .Env spesifik persekitaran, seperti .env.development dan .env.production.
  4. Gunakan perpustakaan seperti Cross-ENV untuk menetapkan pembolehubah persekitaran dalam skrip di seluruh sistem operasi yang berbeza.

Kesimpulan

Menguruskan pembolehubah persekitaran adalah bahagian penting dalam pembangunan aplikasi, dan pakej dotenv menjadikannya mudah untuk memuatkannya dengan selamat. Dengan mencipta pendekatan berstruktur menggunakan fungsi getEnv, kami dapat memastikan bahawa semua pembolehubah yang diperlukan dimuatkan dengan betul, mencegah kesilapan runtime yang disebabkan oleh konfigurasi yang hilang.

dengan mengikuti amalan terbaik, kita dapat meningkatkan keselamatan, kebolehkawalan, dan fleksibiliti aplikasi Node.js kami.


Contoh kod penuh

npm install dotenv
Salin selepas log masuk
Salin selepas log masuk

Atas ialah kandungan terperinci Menguruskan Pembolehubah Persekitaran dalam Node.js dengan Dotenv. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan