Heim >Web-Frontend >js-Tutorial >Lerner-serverseitiger JavaScript mit node.js
Node.js: ein modernes Framework zum Aufbau leistungsstarker Echtzeit-Webanwendungen
Node.js ist ein wichtiger Framework in der modernen Webentwicklung. Mit node.js kann JavaScript sowohl auf der Serverseite als auch auf der Client-Seite von End-to-End verwendet werden. Dieses Tutorial führt Sie durch die Installation von Node.js und demonstrieren, wie das erste "Hello World" -Programm schreibt. Letztendlich lernen Sie, wie Sie eine Wetter -API mit node.js erstellen und ausdrücken.
Traditionell kann JavaScript nur in Webbrowsern ausgeführt werden, aber Node.js entstand aufgrund des wachsenden Interesses, es auf die Serverseite zu bringen.
Node.js unterscheidet sich geringfügig von anderen Servertechnologien, da es eher auf Ereignissen als auf Threads basiert. Webserver wie Apache, die zum Servieren von PHP und anderen CGI-Skripten verwendet wurden, sind threadbasiert, da sie für jede eingehende Anforderung einen System-Thread generieren. Während dies für viele Anwendungen ausreicht, ist das Thread-basierte Modell beim Umgang mit vielen Langzeitverbindungen (z. B. den für die Servieranwendungen erforderlichen Verbindungen wie Instant Messaging-Anwendungen nicht skalierbar.
"Jede E/A -Operation in node.js ist asynchron ..."
Node.js verwendet Ereignisschleifen anstelle von Threads und kann auf Millionen von gleichzeitigen Verbindungen skalieren. Es nutzt die Tatsache, dass der Server die meiste Zeit damit verbringt, auf E/A -Operationen zu warten (z. B. Lesen von Dateien von der Festplatte, auf externe Webdienste zuzugreifen oder auf die Abschluss von Dateien zu warten), da diese Vorgänge viel langsamer sind als Speichervorgänge. Jeder E/A -Betrieb in node.js ist asynchron, was bedeutet, dass der Server eingehende Anforderungen weiter verarbeiten kann, während der E/A -Vorgang im Gange ist. JavaScript eignet sich hervorragend für ereignisbasierte Programme, da es über anonyme Funktionen und Schließungen verfügt, wodurch die Definition von Inline-Rückrufen zu einem Kinderspiel und JavaScript-Entwickler bereits wissen, wie man auf diese Weise programmiert. Dieses ereignisbasierte Modell macht Node.js sehr schnell und macht die Skalierung von Echtzeit-Anwendungen sehr einfach.
Node.js unterstützt offiziell Linux, MacOS, Microsoft Windows, Smartos und FreeBSD. So installieren Sie die neueste Version von node.js unter Windows (v16 und später), Ihr Computer muss Windows 8.1, 10 oder 11 ausgeführt werden.
NODE.JS hat einen eigenen Paketmanager integriert, der Kurzfilm namens Node Paket Manager (NPM) integriert, mit dem Sie Module von Drittanbietern aus der NPM-Registrierung installieren können.
npm -v
aus, um die NPM -Version anzuzeigen.Wenn Sie in Ihrem Programm nach Node suchen, sollten Sie die Eingabeaufforderung node.js finden.
Die Eingabeaufforderung bietet eine Reply (Read-Evaluation-Print-Schleife), in der Sie Javascript node.js-Code eingeben und den Code sofort auswerten und das Ergebnis ausgeben können. Sie können JavaScript auch aus externen Dateien in Reply -Sessions und mehr laden.
Das Erlernen einer neuen Technologie beginnt mit dem "Hello World!"
Erstens werden wir ein neues Node.js -Projekt erstellen. Öffnen Sie dazu Ihr Terminal, wechseln Sie zum Verzeichnis, in dem sich das Projekt befinden soll, und führen Sie den folgenden Befehl aus:
npm init
Sie werden aufgefordert, einige Informationen über die Bibliothek anzugeben, einschließlich der Bibliotheksnamen, des Autors, der Eintragsdatei, der Lizenz und der Version. Um diesen Schritt zu überspringen, fügen Sie die require
Funktion wie unten gezeigt (innerhalb von test.js ).
var util = required ("util");
Dies lädt das util
-Modul, das Dienstprogrammfunktionen für Aufgaben auf Systemebene wie das Druckausgang an einem Terminal enthält. Um eine Funktion in einem Modul zu verwenden, rufen Sie sie in den Variablen auf, die das Modul speichern - in diesem Fall den Befehl Knoten mit dem Dateinamen als Parameter.
Node test.js
Durch das Ausführen dieses Befehls wird "Hello World!" In der Befehlszeile ausgegeben.
Um einen HTTP -Server zu erstellen, müssen Sie das http
-Modul verwenden.
var util = required ("util"); var http = required ("http"); http.createServer (Funktion (req, res) {{ res.writeHead (200, {'content-type': 'text/html'}); Res.Write ('Hallo Welt!'); res.end (); }). Hören (8080); util.log ("Server, der unter https: // localhost: 8080/") ausgeführt wird;
Dieses Skript importiert das http
-Modul und erstellt einen HTTP -Server. Die anonyme Funktion, die an http.createServer()
übergeben wird, wird ausgeführt, wenn die Anfrage eingegangen ist. Besuchen Sie http://localhost:8080/
in Ihrem Browser und Sie werden Hello World sehen! .
Ok, wir haben einen HTTP -Server erstellt, aber egal welche URL Sie besuchen, er wird nichts als "Hallo Welt" senden. Jeder HTTP -Server muss in der Lage sein, statische Dateien wie HTML -Dateien, Bilder und andere Dateien zu senden. So macht der folgende Code:
var util = require ("util"), http = required ("http"), URL = erfordern ("URL"), Pfad = erfordern ("Pfad"), fs = erfordern ("fs"); http.createServer (Funktion (Anfrage, Antwort) { var uri = path.parse (request.url) .base; var Filename = path.join (process.cwd (), URI); fs.access (Dateiname, fs.constants.f_ok, function (err) { if (err) { Antwort.WriteHead (404, {"Inhaltstyp": "text/plain"}); Antwort.Write ("404 nicht gefunden \ n"); Antwort.end (); zurückkehren; } fs.ReadFile (Dateiname, "binär", Funktion (Err, Datei) { if (err) { Antwort.WriteHead (500, {"Inhaltstyp": "text/plain"}); Antwort.Write (err "\ n"); Antwort.end (); zurückkehren; } Antwort.WriteHead (200); Antwort.Write (Datei, "binär"); Antwort.end (); }); }); }). Hören (8080); util.log ("Server, der unter http: // localhost: 8080/") ausgeführt wird;
Wir müssen zunächst alle Module in unserem Code verwenden. Dies schließt http
, path
und url
-Module ein, die die angeforderte eingehende URL analysieren und den Pfadnamen der Zugriffsdatei finden. Wir verwenden process.cwd()
(oder das aktuelle Arbeitsverzeichnis) und den Pfad zur angeforderten Datei, um den tatsächlichen Dateinamen auf der Festplatte des Servers zu finden.
Als nächstes überprüfen wir, ob die Datei vorhanden ist, was eine asynchrone Operation ist, sodass die Rückruffunktion erforderlich ist. Wenn die Datei nicht vorhanden ist, wird eine 404 nicht gefundene Nachricht an den Benutzer gesendet und die Funktion kehrt zurück. Andernfalls verwenden wir fs.readFile()
um die Datei zu lesen. Wenn Sie in Ihrem Browser http://localhost:8080/path/to/file
zugreifen, wird die Datei in Ihrem Browser angezeigt.
Basierend auf unserem statischen Dateiserver erstellen wir einen Node.js -Server, der die erwarteten Wetterbedingungen für eine bestimmte Stadt erhält und anzeigt. Erstens benötigen wir in diesem Beispiel zwei zusätzliche Module von Drittanbietern: das axios
-Modul und das express
Modul. Express ist ein Web -Framework zum Aufbau von erholsamen APIs in Node.js -Anwendungen. Wir werden das Express -Modul verwenden, um einen einzelnen API -Endpunkt zu erstellen, der die Stadt von jeder Anfrage abruft und mit einer HTML -Körperschaft reagiert, die die Wetterbedingungen für die Vorhersage der Stadt enthält. Die Wetterinformationen stammen aus der externen API. Daher stellen wir API -Anfragen mit axios
-Client aus.
Zunächst installieren wir die express
und axios
-Module gleichzeitig mit den folgenden Befehlen:
NPM I Expressachse
Dadurch werden beide Module aus der NPM -Registrierung installiert. Ersetzen Sie app.get()
durch den folgenden Code:
app.get ('/', (req, res) => { lass City = req.query.city; axios.get (`https://api.openweathermap.org/data/2.5/forecast?q=$ {City} & appid = {apikey}`) .then ((Antwort) => { if (response.status === 200) { Res.Send ("Das Wetter in Ihrer Stadt" $ {City} "ist<br> $ {response.data.list [0] .Weather [0] .Description} `) } }) .Catch ((err) => { console.log (err); }) })
Wir holen zuerst die Abfragezeichenfolge (Stadt) aus query
Anfragemobilie ab.
Wir verwenden dann axios
, um eine GET -Anfrage an die API der Wettervorhersage auszustellen. Die URL benötigt zwei Variablen: Wir möchten die prognostizierte Stadt und den einzigartigen API -Schlüssel im offenen Wetter -API -Informationszentrum erhalten.
Wir haben eine res.send()
-Methode eingerichtet. Wenn ein Fehler auftritt, können wir die Fehlerdaten einfach an der Konsole protokollieren, indem wir node test.js
in der Befehlszeile ausführen und die folgende URL in den Browser eingeben:
<code>http://localhost:3000/?city=nairobi</code>
Bitte beachten Sie, dass Nairobi durch jede Stadt Ihrer Wahl ersetzt werden kann. Hier sind die Ergebnisse, die Sie erhalten sollten.
Node.js ist eine sehr aufregende Technologie, die die Schaffung von Echtzeitanwendungen mit leistungsstarker Leistung vereinfacht. Ich hoffe, Sie können die Vorteile davon sehen und in einigen Ihrer eigenen Anwendungen verwenden können. Da Node.js über ein leistungsstarkes Modulsystem verfügt, können Sie in Ihrer Anwendung die Verwendung von Open-Source-Drittanbietern einfach verwenden, und fast alles verfügt über Module: einschließlich einer Datenbankverbindungsebene, einer Vorlagen-Engine, eines Mail-Clients und sogar einem vollständigen Framework zum Anschließen aller Inhalte.
Ich wünsche Ihnen ein fröhliches Node.js -Programm!
Dieser Artikel wurde aktualisiert und enthält Beiträge von Kingsley Ubah. Kingsley ist begeistert davon, Inhalte zu erstellen, die die Leser erziehen und inspirieren. Zu den Hobbys gehören Lesen, Fußball und Radfahren.
Das obige ist der detaillierte Inhalt vonLerner-serverseitiger JavaScript mit node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!