Rumah > Artikel > hujung hadapan web > nodejs .env tidak boleh dibaca
Dalam beberapa tahun kebelakangan ini, Node.js telah menjadi platform yang sangat popular untuk pembangunan aplikasi web. Terutamanya menggunakan Node.js dalam JavaScript, anda boleh membina aplikasi web berprestasi tinggi dan berskala dengan cepat. Walau bagaimanapun, apabila menggunakan aplikasi ke persekitaran pengeluaran, pelbagai isu sering dihadapi. Salah satunya ialah masalah Node.js tidak dapat membaca fail .env.
fail.env ialah format fail yang biasa digunakan untuk menyimpan pelbagai pembolehubah konfigurasi sensitif atau tidak sensitif. Walau bagaimanapun, apabila kami menolak aplikasi Node.js ke pengeluaran, kami perlu memastikan bahawa data sensitif ini disimpan dengan selamat dan tidak disimpan sebagai sebahagian daripada kod dalam pangkalan kod awam. Dalam kes ini, kita boleh menggunakan fail .env untuk menyimpan data sensitif. Fail .env biasanya terletak dalam direktori akar projek dan mempunyai format berikut:
KEY=VALUE ANOTHER_KEY=ANOTHER_VALUE
Dalam Node.js, kita boleh menggunakan perpustakaan dotenv untuk memuatkan pembolehubah persekitaran daripada fail .env dan kemudian menggunakannya sepanjang permohonan itu. Walau bagaimanapun, kadangkala kita mungkin menghadapi masalah dengan pembolehubah persekitaran tidak dimuatkan dengan betul. Masalah ini adalah perkara biasa, tetapi biasanya mudah untuk diselesaikan. Di bawah, kami akan meneroka dalam artikel ini mengapa Node.js tidak boleh membaca fail .env dan cara menyelesaikan masalah ini.
Pertama sekali, kita perlu menjelaskan lokasi fail .env dan struktur projek Node.js. Secara lalai, fail masukan untuk aplikasi Node.js hendaklah terletak dalam direktori akar projek dan fail .env juga harus berada dalam direktori itu. Berikut ialah struktur tipikal projek Node.js:
project-root/ node_modules/ src/ index.js .env package.json
Setelah kami menentukan lokasi fail .env, kami perlu memastikan bahawa kod untuk memuatkan fail .env ditambahkan pada aplikasi kami dengan betul. Dalam Node.js, ini boleh dicapai dengan kod berikut:
require('dotenv').config();
Dalam kod di atas, kami menggunakan kaedah .config() pustaka dotenv untuk memuatkan pembolehubah persekitaran daripada fail .env. Walau bagaimanapun, jika kaedah ini tidak ditambahkan pada aplikasi dengan betul, atau lokasi fail .env tidak betul, Node.js tidak akan dapat memuatkan pembolehubah persekitaran dalam fail .env pada masa jalan.
Satu lagi masalah biasa ialah apabila menggunakan persekitaran pengeluaran, fail .env yang berbeza sering digunakan atas sebab keselamatan. Sebagai contoh, kami mungkin mempunyai satu fail .env untuk menyimpan konfigurasi untuk persekitaran pembangunan dan satu lagi fail .env untuk menyimpan konfigurasi untuk persekitaran pengeluaran. Jika kami menggunakan fail .env yang salah dalam persekitaran pengeluaran, ia akan menyebabkan Node.js gagal memuatkan pembolehubah persekitaran.
Akhir sekali, kita perlu melihat sama ada nama pembolehubah persekitaran sepadan dengan nama yang digunakan dalam kod. Contohnya, jika pembolehubah persekitaran yang kami gunakan dalam kod ialah DATABASE_URL, tetapi nama yang digunakan dalam fail .env sebenar ialah DB_URL, ia akan menyebabkan masalah bahawa Node.js tidak boleh memuatkan pembolehubah persekitaran.
Sekarang kita telah melihat beberapa sebab biasa mengapa Node.js tidak boleh membaca fail .env, berikut ialah beberapa penyelesaian:
Langkah pertama ialah memastikan The Fail .env terletak dan dinamakan dengan betul, dan kaedah .config() telah ditambahkan pada aplikasi dengan betul. Biasanya, kita boleh menambah kod berikut dalam fail kemasukan:
require('dotenv').config();
Jika fail .env tiada dalam direktori akar projek, anda perlu menentukan laluan fail .env. Contohnya, jika fail .env berada di bawah folder src, anda perlu menukar kod kepada yang berikut:
require('dotenv').config({ path: './src/.env' });
Langkah kedua ialah memastikan fail .env yang betul digunakan dalam persekitaran pengeluaran. Jika anda menggunakan fail .env yang salah dalam persekitaran pengeluaran, anda mungkin perlu menetapkan pembolehubah persekitaran secara manual. Contohnya, dalam Linux atau Mac OS Pembolehubah ini hanya sah untuk proses semasa.
Langkah ketiga ialah memastikan nama pembolehubah persekitaran sepadan dalam fail .env dan dalam kod. Jika nama yang anda gunakan dalam kod anda tidak sepadan dengan nama yang anda gunakan dalam fail .env sebenar, anda perlu menukar kod atau fail .env anda untuk menjadikannya sepadan. Untuk mengelakkan masalah ini, adalah disyorkan untuk menggunakan nama yang sama untuk merujuk kepada pembolehubah persekitaran. Sebagai contoh, nama semua pembolehubah persekitaran boleh disimpan dalam huruf besar. Ini akan memudahkan mereka untuk dikenal pasti dan diselenggara.
Kesimpulan
Dalam artikel ini, kami memperkenalkan sebab mengapa Node.js tidak boleh membaca fail .env dan cara menyelesaikan masalah ini. Masalah ini biasanya boleh diselesaikan dengan mudah setelah anda menentukan lokasi fail .env dan memastikan bahawa kod tersebut termasuk kaedah .config() dengan betul. Sila ambil perhatian bahawa adalah sangat penting untuk menggunakan fail .env yang betul dalam persekitaran pengeluaran. Dengan menggunakan fail .env yang betul dan nama pembolehubah persekitaran yang betul, kami boleh menyimpan data sensitif dengan selamat dan melindungi aplikasi kami daripada serangan.
Atas ialah kandungan terperinci nodejs .env tidak boleh dibaca. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!