


Verwenden von Nodemon und beobachten Sie in node.js nach Live -Neustarts
Feb 08, 2025 am 10:00 AM
Verabschieden Sie sich von der Müdigkeit von wiederholten Neustarts in der Entwicklung von Node.js! In diesem Artikel werden zwei Methoden eingeführt, mit denen Sie die Entwicklungseffizienz verbessern k?nnen.
Kernpunkte
- Effiziente Entwicklung mit Nodemon: Wir werden Nodemon, ein Node.js-Modul von Drittanbietern, einführen, das das Problem des manuellen Stoppens und Neustarts der Node.js-Anwendung nach jeder Code-?nderung effektiv l?sen kann.
- Nodemon -Konfigurationsoptionen: Wir werden verschiedene Konfigurationsoptionen für Nodemon abdecken, z.
- node.js -Watch -Modus (für einfache Anwendungen): Wenn Sie Node.js 18.11 oder h?her verwenden, k?nnen Sie die experimentelle
--watch
Option von Node.js verwenden. Diese integrierte Funktion startet die Anwendung immer wieder, wenn sich eine importierte Datei ?ndert und eine direktere Alternative als Nodemon bietet, ohne dass zus?tzliche Module von Drittanbietern erforderlich sind. Es fehlen jedoch die in Nodemon verfügbaren erweiterten Steueroptionen.
Wenn Sie Erfahrung mit PHP -Entwicklung haben, wissen Sie, dass Sie den Code jederzeit aktualisieren und den Browser aktualisieren k?nnen, um die ?nderungen zu testen. Ein Webserver wie Apache oder NGINX erh?lt Ihre Anfrage für eine PHP -Datei und übergibt den Inhalt an den PHP -Interpreter, um den Code auszuführen. Der Server gibt die generierte Ausgabe (normalerweise HTML oder JSON) an den Anrufbrowser zurück. Mit anderen Worten, der Code wird jedes Mal dynamisch ausgeführt, wenn er angefordert wird.
node.js verfolgt einen anderen Ansatz für Webanwendungen: Ihre JavaScript -Anwendung ist ein Webserver . Durch Ausführen von node index.js
wird die Anwendung initialisiert, alle Module geladen und einen Server starten, der auf eingehende Anforderungen reagieren kann. Das ?ndern der Datei wirkt sich nicht auf die Ausgabe der Anwendung aus, da sie bereits im Speicher ausgeführt wird. Um ein Update zu testen, müssen Sie es mit Strg |
node.js stoppen und starten Sie Prozesse neu, k?nnen beim Debuggen oder w?hrend dieser seltenen fokussierten Stunden sehr frustrierend sein, insbesondere wenn viele ?nderungen vorgenommen werden. Glücklicherweise gibt es zwei L?sungen:
node index.js
nodemon
node.js
modus- nodemon
-
--watch
nodemon ist ein Drittanbieter-Node.js-Modul, das vom JavaScript-Experten Remy Sharp entwickelt wurde. (Er sagte, Sie k?nnen es nach Belieben aussprechen!)
Ersetzen Sie den Knoten dann durch Nodemon im Befehl Development Startup. Betrachten Sie beispielsweise den folgenden Befehl:
Der obige Befehl sieht jetzt so aus:
npm install -g nodemon
Ihre Anwendung beginnt wie gewohnt, startet jedoch automatisch neu, wenn Sie die Quelldatei bearbeiten und speichern. Es ist nicht erforderlich,
node --inspect index.js arg1 arg2ctrl
|
Hinweis: Nodemon ist eine serverseitige L?sung, die keine Browser-Registerkarten aktualisiert, die Sie auf die Anwendung verweisen. Sie k?nnen Tools wie BrowserSync oder Esbuild verwenden, um das Nachladen in Echtzeit zu erreichen.
Um Nodemon Hilfe zu erhalten, geben Sie ein:
npm install -g nodemon
Nodemon -Konfiguration
Nodemon hat einen eigenen Satz von Befehlszeilenparametern, die Vorrang vor Konfigurationen an anderer Stelle haben. Sie k?nnen auch Konfigurationen unter:
definieren- Teil von
package.json
in der Datei"nodemonConfig"
des Projekts - lokale
nodemon.json
Konfigurationsdatei im Projektverzeichnis und/oder - Global
nodemon --config <file>
Konfigurationsdatei verwendet, die beim Ausführennodemon.json
aus der Befehlszeile verwendet wird
Die folgenden Parameter/Einstellungen werden h?ufig verwendet.
Uhr
Nodemon Monitore JavaScript -Dateien im aktuellen Arbeitsverzeichnis, aber Sie k?nnen einen bestimmten Pfad mithilfe von Wildcards in der Befehlszeile explizit festlegen:
node --inspect index.js arg1 arg2
Oder Sie k?nnen dies in der Konfigurationsdatei nodemon.json
tun:
nodemon --inspect index.js arg1 arg2
ignorieren
In ?hnlicher Weise k?nnen Sie den Pfad ignorieren:
nodemon --help
Oder Sie k?nnen dies in der Konfigurationsdatei nodemon.json
tun:
nodemon --watch lib1 config/*.json ./index.js
ext
Sie k?nnen bestimmte Dateien nach ihren Dateierweiterungen überwachen. Beispielsweise k?nnen Sie JS-, CJS-, MJS-, JSON- und NJK -Vorlagendateien wie folgt überwachen:
{ "watch": [ "lib1", "config/*.json" ] }
Oder Sie k?nnen dies in der Konfigurationsdatei nodemon.json
tun:
nodemon --ignore lib2 config/build.json ./index.js
Legacywatch
In einigen Umgebungen, wie z. B. Docker -Container, die Dateien von montierten Laufwerken lesen, kann die Dateiüberwachung fehlschlagen. Wechseln Sie zum Legacy -überwachungsmodus Verwenden Sie die Wahl, um zu überprüfen, ob die Datei ge?ndert wurde. Aus der Befehlszeile:
{ "ignore": [ "lib2", "config/build.json" ] }
oder in der Konfigurationsdatei nodemon.json
:
nodemon --ext "js,cjs,mjs,json,njk" ./index.js
Verz?gerung
Nodemon wartet auf eine Sekunde, bevor er einen Neustart ausl?st. Dies ist nützlich, wenn Sie normalerweise viele Dateien gleichzeitig speichern. Sie k?nnen die Verz?gerung aus der Befehlszeile ?ndern - beispielsweise auf fünf Sekunden:
{ "ext": "js,cjs,mjs,json,njk" }
oder in der Konfigurationsdatei nodemon.json
(Beachten Sie, dass diese Konfiguration anstelle von Sekunden Millisekunden verwendet):
nodemon --legacy-watch ./index.js
ausführlich
detailliertes Ausgabeprotokoll anzeigen:
{ "legacyWatch": true }
oder in der Konfigurationsdatei nodemon.json
:
nodemon --delay 5 ./index.js
env
Konfigurationsdatei zum Einstellen einer bestimmten Umgebungsvariablen: nodemon.json
{ "delay": 5000 }Andere ausführbare
Schlie?lich k?nnen Sie Nodemon verwenden, um Anwendungen in anderen Sprachen zu starten. Zum Beispiel ein Perl -Skript starten, das automatisch neu gestartet wird:
nodemon --verbose ./index.jsSie k?nnen auch eine Liste von ausführbaren Ausführungen unter Verwendung der Erweiterung in der Konfigurationsdatei
definieren: nodemon.json
{ "verbose": true }Erweitert Nodemon
Wenn Sie es ben?tigen, bietet Nodemon fortgeschrittenere Funktionen:
- Senden Sie ein Signal, damit Sie das Herunterfahren anmutig verarbeiten k?nnen
- kostenloses Ereignis, wenn der Status von Nodemon ?ndert
- übertragen Sie die Ausgangspipeline auf andere Prozesse
- laden Nodemon als Modul in Ihr Projekt
- generieren Nodemon als Kinderprozess und
- Verwenden Sie Nodemon in Schlupf- und Grunz -Workflows.
node.js -Watch -Modus
--watch
Wenn Sie komplexe Anforderungen an die Anwendungsstart haben, ist Nodemon immer noch das bevorzugte Tool. Wenn Sie jedoch Node.JS 18.11 (Ende 2022 freigegeben) oder sp?ter verwenden, bietet es eine experimentelle
npm install -g nodemon
Dies wird:
node --inspect index.js arg1 arg2
node.js wird neu gestartet, wenn sich importierte Datei ?ndert. Es gibt keine anderen Steuerungsoptionen. Wenn es also nicht zu Ihrem Projekt passt, sollten Sie stattdessen Nodemon verwenden.
Zusammenfassung
Wenn Ihre Erfahrung w?chst, werden Sie es zunehmend nützlicher, Node.js -Anwendungen automatisch neu zu starten. Bitte betrachten Sie dies als Teil des Entwicklungsworkflows in allen Projekten.
Das obige ist der detaillierte Inhalt vonVerwenden von Nodemon und beobachten Sie in node.js nach Live -Neustarts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Es gibt drei g?ngige M?glichkeiten, HTTP-Anforderungen in Node.js zu initiieren: Verwenden Sie integrierte Module, Axios und Knotenfetch. 1. Verwenden Sie das integrierte HTTP/HTTPS-Modul ohne Abh?ngigkeiten, das für grundlegende Szenarien geeignet ist, jedoch eine manuelle Verarbeitung von Datengen?hten und Fehlerüberwachung erfordert, z. 2.Axios ist eine auf Versprechen basierende Bibliothek von Drittanbietern. Es verfügt über eine kurze Syntax und leistungsstarke Funktionen, unterstützt Async/Auseait, automatische JSON -Konvertierung, Interceptor usw. Es wird empfohlen, asynchrone Anforderungsvorg?nge zu vereinfachen. 3.Node-Fetch bietet einen Stil ?hnlich dem Browser-Abruf, basierend auf Versprechen und einfacher Syntax

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

Welches JavaScript -Framework ist die beste Wahl? Die Antwort besteht darin, die am besten geeigneten nach Ihren Bedürfnissen zu w?hlen. 1.React ist flexibel und kostenlos und für mittlere und gro?e Projekte geeignet, für die hohe Anpassungs- und Teamarchitekturf?higkeiten erforderlich sind. 2. Angular bietet vollst?ndige L?sungen, die für Anwendungen auf Unternehmensebene und langfristige Wartung geeignet sind. 3.. Vue ist einfach zu bedienen, geeignet für kleine und mittlere Projekte oder schnelle Entwicklung. Unabh?ngig davon, ob es einen technologischen Stack, die Teamgr??e, der Projektlebenszyklus gibt und ob SSR erforderlich ist, sind auch wichtige Faktoren für die Auswahl eines Rahmens. Kurz gesagt, es gibt keinen absolut besten Rahmen, die beste Wahl ist die, die Ihren Bedürfnissen entspricht.

Hallo, JavaScript -Entwickler! Willkommen in den JavaScript -Nachrichten dieser Woche! Diese Woche konzentrieren wir uns auf: Oracas Markenstreit mit Deno, neue JavaScript -Zeitobjekte werden von Browsern, Google Chrome -Updates und einigen leistungsstarken Entwickler -Tools unterstützt. Fangen wir an! Der Markenstreit von Oracle mit dem Versuch von Deno Oracle, ein "JavaScript" -Marke zu registrieren, hat Kontroversen verursacht. Ryan Dahl, der Sch?pfer von Node.js und Deno, hat eine Petition zur Absage der Marke eingereicht, und er glaubt, dass JavaScript ein offener Standard ist und nicht von Oracle verwendet werden sollte

Cacheapi ist ein Tool, das der Browser zur Cache -Netzwerkanfragen bereitstellt, das h?ufig in Verbindung mit dem Servicearbeiter verwendet wird, um die Leistung der Website und die Offline -Erfahrung zu verbessern. 1. Es erm?glicht Entwicklern, Ressourcen wie Skripte, Stilbl?tter, Bilder usw. Zu speichern; 2. Es kann die Cache -Antworten entsprechend den Anfragen übereinstimmen. 3. Es unterstützt das L?schen bestimmter Caches oder das L?schen des gesamten Cache. 4.. Es kann Cache -Priorit?ts- oder Netzwerkpriorit?tsstrategien durch Servicearbeiter implementieren, die sich auf Fetch -Ereignisse anh?ren. 5. Es wird h?ufig für die Offline -Unterstützung verwendet, die wiederholte Zugriffsgeschwindigkeit, die Vorspannungs -Schlüsselressourcen und den Inhalt des Hintergrundaktualisierungss beschleunigen. 6. Wenn Sie es verwenden, müssen Sie auf die Cache -Versionskontrolle, Speicherbeschr?nkungen und den Unterschied zum HTTP -Caching -Mechanismus achten.

Versprechen ist der Kernmechanismus für den Umgang mit asynchronen Operationen in JavaScript. Das Verst?ndnis von Kettenanrufen, Fehlerbehebung und Kombination ist der Schlüssel zum Beherrschen ihrer Anwendungen. 1. Der Kettenaufruf gibt ein neues Versprechen durch .then () zurück, um asynchrone Prozessverkampferung zu realisieren. Jeder. Dann () erh?lt das vorherige Ergebnis und kann einen Wert oder ein Versprechen zurückgeben; 2. Die Fehlerbehandlung sollte .Catch () verwenden, um Ausnahmen zu fangen, um stille Ausf?lle zu vermeiden, und den Standardwert im Fang zurückgeben, um den Prozess fortzusetzen. 3. Combinatoren wie Promise.All () (erfolgreich erfolgreich erfolgreich nach allen Erfolg), Versprechen.Race () (Die erste Fertigstellung wird zurückgegeben) und Versprechen.Allsettled () (Warten auf alle Fertigstellungen)

JavaScript-Array-integrierte Methoden wie .Map (), .filter () und .Reduce () k?nnen die Datenverarbeitung vereinfachen. 1) .Map () wird verwendet, um Elemente eins in eins um Neuarrays zu konvertieren; 2) .Filter () wird verwendet, um Elemente durch Bedingung zu filtern; 3) .Reduce () wird verwendet, um Daten als einzelner Wert zu aggregieren; Missbrauch sollte bei der Verwendung vermieden werden, was zu Nebenwirkungen oder Leistungsproblemen führt.

Die Ereignisschleife von JavaScript verwaltet asynchrone Vorg?nge, indem sie Call -Stapel, Webapis und Task -Warteschlangen koordinieren. 1. Der Anrufstack führt synchronen Code aus, und wenn er auf asynchrone Aufgaben begegnet, wird er zur Verarbeitung an Webapi übergeben. 2. Nachdem das Webapi die Aufgabe im Hintergrund abgeschlossen hat, wird der Rückruf in die entsprechende Warteschlange (Makroaufgabe oder Micro -Aufgabe) eingebaut. 3. Die Ereignisschleife prüft, ob der Anrufstapel leer ist. Wenn es leer ist, wird der Rückruf aus der Warteschlange herausgenommen und zur Ausführung in den Anrufstapel geschoben. V. 5. Das Verst?ndnis der Ereignisschleife hilft zu vermeiden, den Haupt -Thread zu blockieren und die Codeausführungsreihenfolge zu optimieren.
