Heim > Web-Frontend > js-Tutorial > Node.js v .env-Dateien, Importmodule und Berechtigungsmodell

Node.js v .env-Dateien, Importmodule und Berechtigungsmodell

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2024-08-09 22:37:03
Original
410 Leute haben es durchsucht

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

Node.js v20.6 wurde mit erstaunlichen neuen Funktionen veröffentlicht, die ab dem 24. Oktober 2023 Teil der LTS-Versionen sind. Mal sehen!

Die INI-Konfigurationsdateien

Verabschieden Sie sich vom dotenv-Paket, jetzt kann Node.js Umgebungsvariablen aus einer .env-Datei laden.

node --env-file path/to/.env index.js
Nach dem Login kopieren

? Der Pfad zur INI-Datei ist erforderlich, da Node.js keinen Standardnamen für die INI-Datei gewählt hat.

? Wenn die INI-Datei nicht vorhanden ist, ist der Knotenprozess nicht fehlgeschlagen. Beginnen Sie einfach mit der Ausführung ohne die Umgebungsvariablen.

NODE_OPTIONS wird geladen

Sie können die spezifischen Umgebungsvariablen von Node.js (wie NODE_OPTIONS) mithilfe einer INI-Konfigurationsdatei wie im folgenden Beispiel laden:

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

Sie können dies mit der gleichen Methode verwenden:

node --env-file .env index.js
Nach dem Login kopieren

Laden Sie ES-Module vor

Laden Sie ES-Module beim Start mit dem Flag --import vor. Das Modul wird geladen, bevor Anwendungscode ausgeführt wird, auch vor dem Einstiegspunkt.

node --import path/to/file.js index.js
Nach dem Login kopieren

Dieses Flag ähnelt dem bekannten Flag --require, das zum Laden von CommonJS-Modulen verwendet wird.

? Module, die mit --require vorinstalliert wurden, werden vor Modulen ausgeführt, die mit --import vorinstalliert wurden.

Berechtigungsmodell

Wir haben einen neuen Mechanismus namens Permission Model, um den Zugriff auf bestimmte Ressourcen während der Ausführung eines Node.js-Prozesses einzuschränken. Die API existiert hinter einem Flag --experimental-permission, das, wenn es aktiviert ist, den Zugriff auf alle nicht explizit erlaubten Ressourcen einschränkt.

Dateisystemberechtigungen

Das Flag --allow-fs-read ermöglicht alle FileSystemRead-Vorgänge mit * oder auf bestimmte Pfade mit absoluten Routen.

node --experimental-permission --allow-fs-read=* index.js
Nach dem Login kopieren

Um nur den Zugriff auf bestimmte Pfade zu ermöglichen, sollten Sie absolute Routen verwenden

node --experimental-permission --allow-fs-read=/path/to/index.js --allow-fs-read=/path/to/directory index.js
Nach dem Login kopieren

? Das Initialisierungsmodul muss ebenfalls zugelassen sein. Andernfalls kann die Datei index.js nicht vom Node.js-Prozess selbst geladen werden.

? Sie können verwenden. um den Zugriff auf das Arbeitsverzeichnis zu ermöglichen, aber Sie können damit nicht den Pfad zu einer Datei angeben (z. B. ./index.js).

node --experimental-permission --allow-fs-read=. index.js
Nach dem Login kopieren

Das Flag --allow-fs-write ermöglicht den Zugriff auf bestimmte Pfade oder das gesamte Dateisystem mit *.

node --experimental-permission --allow-fs-read=. --allow-fs-write=/tmp/ index.js
Nach dem Login kopieren

Untergeordneter Prozess

Wenn das Berechtigungsmodell aktiviert ist, kann der Prozess standardmäßig keinen untergeordneten Prozess erzeugen. Sie sollten den --allow-child-process verwenden, um diesen Vorgang zuzulassen. Lassen Sie uns den folgenden Code für index.js verwenden.

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

Um dieses Snippet mit aktiviertem Berechtigungsmodell auszuführen, sollten Sie index.js mit dem folgenden Befehl ausführen:

node --experimental-permission --allow-fs-read . --allow-child-process index.js
Nach dem Login kopieren

? Der untergeordnete Prozess erbt standardmäßig nicht das Berechtigungsmodell, deshalb wird die Datei „new-file.txt“ erfolgreich erstellt.

Weitere Optionen

Sie können das Flag --allow-worker aktivieren, wenn Sie Worker-Threads unter diesem Berechtigungsmodell erstellen möchten, und --allow-wasi, um die Erstellung von WASI-Instanzen zuzulassen

Abschluss

Wir haben viele neue Tools zum Laden von Umgebungsvariablen für unsere Anwendung, eine Methode zum Importieren der in unserem Code erforderlichen ES-Module vorab laden und ein neues Berechtigungsmodell, um die Sicherheit unserer Systeme zu erhöhen.

Bleiben Sie auf dem Laufenden über den Node.js-Blog, dieses Team fügt in jeder Version tolle Funktionen hinzu! Wir haben anfängliche TypeScript-Unterstützung und eine Netzwerkinspektion mit den DevTools in v22.6.0.

Das obige ist der detaillierte Inhalt vonNode.js v .env-Dateien, Importmodule und Berechtigungsmodell. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage