Perisian moden memerlukan fleksibiliti, skalabiliti dan keselamatan yang teguh. Pembolehubah persekitaran memainkan peranan penting dalam mencapai keseimbangan ini. Panduan ini meneroka pelbagai kaedah untuk menetapkan dan mengurus pembolehubah persekitaran dalam aplikasi Node.js, menekankan amalan terbaik untuk keselamatan dan kebolehselenggaraan. Kami akan merangkumi segala-galanya daripada pengesahan permulaan kepada mencegah pendedahan data sensitif. Sama ada anda seorang pembangun berpengalaman atau baru menggunakan Node.js, maklumat ini penting untuk membina aplikasi yang selamat dan boleh disesuaikan.
Pembolehubah persekitaran ialah pasangan nilai kunci yang disimpan di luar pangkalan kod aplikasi anda, biasanya dalam fail konfigurasi atau tetapan sistem. Mereka memegang data sensitif seperti kunci API dan bukti kelayakan pangkalan data, menghalang pengekodan keras dan meningkatkan keselamatan. Pendekatan ini memudahkan pengurusan merentas persekitaran yang berbeza (pembangunan, ujian, pengeluaran).
Dalam Node.js, pembolehubah persekitaran mendayakan konfigurasi aplikasi dinamik tanpa pengubahsuaian kod. Pangkalan kod yang sama boleh berinteraksi dengan pangkalan data atau API yang berbeza bergantung pada persekitaran, meningkatkan keselamatan, memudahkan penggunaan dan meningkatkan kebolehsuaian.
Tidak seperti pembolehubah JavaScript standard, pembolehubah persekitaran tidak ditakrifkan dalam kod. Ia diakses melalui process.env
dan wujud secara bebas, berpotensi mempengaruhi berbilang aplikasi pada sistem.
Node.js menggunakan objek process.env
untuk mengakses dan mengurus pembolehubah persekitaran. Untuk mendapatkan semula nilai pembolehubah, gunakan process.env.VARIABLE_NAME
. Contohnya, process.env.API_KEY
mendapatkan semula nilai yang dikaitkan dengan API_KEY
. Walaupun secara teknikal mungkin untuk menetapkan pembolehubah persekitaran dalam kod, ini biasanya tidak digalakkan; ia menafikan faedah menggunakan pembolehubah persekitaran pada mulanya.
Berikut ialah cara API_KEY
boleh digunakan dalam API Ekspres:
<code class="language-javascript">const express = require('express'); const app = express(); // Access API key from environment variables const apiKey = process.env.API_KEY; if (!apiKey) { console.error('Error: API key is not defined.'); process.exit(1); } app.get('/', (req, res) => { res.send('API key successfully loaded.'); }); // Start the server const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); });</code>
Sekarang, mari kita terokai kaedah yang berbeza untuk menetapkan pembolehubah persekitaran:
dotenv
: Pakej dotenv
memudahkan pengurusan pembolehubah persekitaran dengan mengasingkannya daripada kod anda. Tentukan pasangan nilai kunci dalam fail .env
:<code>PORT=3000 DB_USERNAME=dbuser</code>
Import dan gunakannya seperti ini:
<code class="language-javascript">import * as dotenv from 'dotenv'; dotenv.config(); console.log(process.env.PORT); // Output: 3000 console.log(process.env.DB_USERNAME); // Output: dbuser</code>
Anda boleh menentukan laluan fail .env
alternatif menggunakan dotenv.config({ path: './path/to/another.env' })
. Walaupun berguna untuk pembangunan, pertimbangkan kaedah lain untuk pengeluaran.
~/.bashrc
, ~/.zshrc
). Ini menjejaskan semua proses dalam sesi shell itu. Contohnya:<code class="language-javascript">const express = require('express'); const app = express(); // Access API key from environment variables const apiKey = process.env.API_KEY; if (!apiKey) { console.error('Error: API key is not defined.'); process.exit(1); } app.get('/', (req, res) => { res.send('API key successfully loaded.'); }); // Start the server const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); });</code>
Mulakan semula terminal anda atau jalankan source ~/.bashrc
untuk menggunakan perubahan. Untuk akses seluruh sistem (proses sistem), gunakan /etc/environment
.
launch.sh
):<code>PORT=3000 DB_USERNAME=dbuser</code>
Jadikan ia boleh laku (chmod x launch.sh
) dan jalankannya (./launch.sh
).
<code class="language-javascript">import * as dotenv from 'dotenv'; dotenv.config(); console.log(process.env.PORT); // Output: 3000 console.log(process.env.DB_USERNAME); // Output: dbuser</code>
Atau gunakan fail ecosystem.config.js
untuk konfigurasi khusus persekitaran.
Dockerfile
menggunakan ENV
:<code class="language-bash"># ~/.bashrc export PORT=3000 export DB_USERNAME=myuser</code>
Timpa lalai apabila menjalankan bekas menggunakan -e PORT=5173
atau dalam fail docker-compose.yml
.
Ikuti amalan terbaik ini untuk aplikasi selamat dan boleh diselenggara:
Nama Deskriptif dan Dokumentasi: Gunakan nama yang jelas dan deskriptif dan dokumenkan tujuannya dalam README projek anda.
Pengesahan Permulaan: Sahkan pembolehubah persekitaran pada permulaan aplikasi untuk memastikan ia ditetapkan dengan betul. Kendalikan pembolehubah yang hilang dengan anggun (nilai lalai atau pengendalian ralat).
.env
Pengecualian Fail: Kecualikan .env
fail daripada kawalan versi (Git) menggunakan .gitignore
.
Pertimbangkan KMS (Sistem Pengurusan Utama): Untuk keselamatan yang dipertingkatkan, terutamanya dengan data yang sangat sensitif, gunakan KMS untuk menyulitkan dan menyimpan pembolehubah persekitaran anda.
Nilai Lalai: Sediakan nilai lalai untuk pembolehubah persekitaran bukan kritikal untuk memastikan kefungsian aplikasi walaupun pembolehubah tiada.
Jangan sekali-kali Dedahkan di Bahagian Hadapan: Jangan sekali-kali dedahkan pembolehubah persekitaran sensitif secara langsung kepada kod pihak pelanggan.
SDK Kerani menggunakan pembolehubah persekitaran untuk konfigurasi dan perkaitan aplikasi dalam papan pemuka Kerani. Ini membolehkan permintaan bahagian belakang selamat dan pengesahan bahagian hadapan menggunakan Express. Contohnya:
<code class="language-bash">#!/bin/bash export PORT=3000 export DB_USERNAME=myuser node app.js</code>
Menguruskan pembolehubah persekitaran dengan selamat adalah yang terpenting. Dengan mengikuti amalan terbaik ini, anda akan meningkatkan keselamatan dan kebolehselenggaraan aplikasi Node.js anda dengan ketara, memastikan ia bersedia untuk penggunaan pengeluaran.
Atas ialah kandungan terperinci Cara menetapkan pembolehubah persekitaran dalam Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!