Heim > Artikel > Web-Frontend > Node.js v .env-Dateien, Importmodule und Berechtigungsmodell
Node.js v20.6 wurde mit erstaunlichen neuen Funktionen veröffentlicht, die ab dem 24. Oktober 2023 Teil der LTS-Versionen sind. Mal sehen!
Verabschieden Sie sich vom dotenv-Paket, jetzt kann Node.js Umgebungsvariablen aus einer .env-Datei laden.
node --env-file path/to/.env index.js
? 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.
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
Sie können dies mit der gleichen Methode verwenden:
node --env-file .env index.js
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
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.
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.
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
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
? 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
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
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!")']);
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
? Der untergeordnete Prozess erbt standardmäßig nicht das Berechtigungsmodell, deshalb wird die Datei „new-file.txt“ erfolgreich erstellt.
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
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!