Rumah  >  Artikel  >  hujung hadapan web  >  Fail Node.js v .env, modul import dan Model Kebenaran

Fail Node.js v .env, modul import dan Model Kebenaran

WBOY
WBOYasal
2024-08-09 22:37:03338semak imbas

Node.js v .env files, import modules, and Permission Model

Node.js v20.6 telah dikeluarkan dengan ciri baharu yang menakjubkan yang merupakan sebahagian daripada versi LTS mulai 24 Oktober 2023. Mari lihat!

Fail konfigurasi INI

Ucapkan selamat tinggal kepada pakej dotenv, kini Node.js boleh memuatkan pembolehubah persekitaran daripada fail .env.

node --env-file path/to/.env index.js

? Laluan ke fail INI diperlukan kerana Node.js tidak memilih nama lalai untuk fail INI.

? Jika fail INI tidak wujud, proses nod tidak gagal, mulakan sahaja tanpa pembolehubah persekitaran.

Memuatkan NODE_OPTIONS

Anda boleh memuatkan pembolehubah persekitaran khusus Node.js (seperti NODE_OPTIONS) menggunakan fail konfigurasi INI seperti contoh berikut:

NODE_NO_WARNINGS=1
NODE_OPTIONS="--experimental-permission --allow-fs-read=*"
TZ=Pacific/Honolulu
UV_THREADPOOL_SIZE=5

Anda boleh menggunakan ini dengan kaedah yang sama:

node --env-file .env index.js

Pramuat modul ES

Pramuat modul ES semasa permulaan menggunakan bendera --import, modul akan dimuatkan sebelum sebarang kod aplikasi dijalankan, malah titik masuk.

node --import path/to/file.js index.js

Bendera ini serupa dengan bendera yang terkenal --require flag yang digunakan untuk memuatkan modul CommonJS.

? Modul yang dipramuat dengan --require akan dijalankan sebelum modul dipramuat dengan --import.

Model Kebenaran

Kami mempunyai mekanisme baharu untuk menyekat akses kepada sumber tertentu semasa pelaksanaan proses Node.js yang dipanggil Model Kebenaran. API wujud di sebalik bendera --permission-experimental yang, apabila didayakan, akan menyekat akses kepada semua sumber yang tidak dibenarkan secara eksplisit.

Keizinan Sistem Fail

Bendera --allow-fs-read membenarkan semua operasi FileSystemRead menggunakan *, atau ke laluan tertentu menggunakan laluan mutlak.

node --experimental-permission --allow-fs-read=* index.js

Untuk membenarkan akses kepada laluan tertentu sahaja anda harus menggunakan laluan mutlak

node --experimental-permission --allow-fs-read=/path/to/index.js --allow-fs-read=/path/to/directory index.js

? Modul pemula juga perlu dibenarkan. Jika tidak, fail index.js tidak boleh dimuatkan oleh proses Node.js itu sendiri.

? Anda boleh menggunakan . untuk membenarkan akses kepada direktori kerja, tetapi anda tidak boleh menggunakannya untuk menentukan laluan ke fail (cth. ./index.js).

node --experimental-permission --allow-fs-read=. index.js

Bendera --allow-fs-write membenarkan akses kepada laluan tertentu atau keseluruhan sistem fail menggunakan *.

node --experimental-permission --allow-fs-read=. --allow-fs-write=/tmp/ index.js

Proses Kanak-kanak

Apabila Model Kebenaran didayakan, proses itu tidak akan dapat menghasilkan sebarang proses anak secara lalai, anda harus menggunakan --allow-child-process untuk membenarkan operasi ini. Mari gunakan kod berikut untuk index.js.

const childProcess = require('node:child_process');
childProcess.spawn('node', ['-e', 'require("fs").writeFileSync("./new-file.txt", "Hello, World!")']);

Untuk menjalankan coretan ini dengan Model Kebenaran didayakan, anda harus melaksanakan index.js menggunakan arahan berikut:

node --experimental-permission --allow-fs-read . --allow-child-process index.js

? Proses anak tidak mewarisi Model Kebenaran secara lalai, itulah sebabnya new-file.txt berjaya dibuat.

Lebih banyak pilihan

Anda boleh menyemak bendera --allow-worker jika anda ingin mencipta Benang Pekerja di bawah Model Kebenaran ini dan --allow-wasi untuk membenarkan penciptaan tika WASI

Kesimpulan

Kami mempunyai banyak alatan baharu untuk memuatkan pembolehubah persekitaran untuk aplikasi kami, kaedah untuk mengimport pramuat modul ES yang diperlukan dalam kod kami dan Model Kebenaran baharu untuk meningkatkan keselamatan sistem kami.

Nantikan blog Node.js, pasukan ini menambah ciri hebat dalam setiap versi! Kami mempunyai sokongan TypeScript awal dan Pemeriksaan Rangkaian menggunakan DevTools dalam v22.6.0.

Atas ialah kandungan terperinci Fail Node.js v .env, modul import dan Model Kebenaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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