Heim >Web-Frontend >js-Tutorial >Einführung in NodeJS [Einfache Erklärung]

Einführung in NodeJS [Einfache Erklärung]

Susan Sarandon
Susan SarandonOriginal
2024-11-22 21:28:24291Durchsuche

Introduction to NodeJS [Simple Explanation]

Was ist NodeJS?

  • Eine Open-Source- und plattformübergreifende Javascript-Laufzeitumgebung.
  • Läuft auf der Javascript V8-Engine (dem Kern von Google Chrome)
  • Single-Threaded und verwendet asynchrone Programmierung.

Wenn NodeJS Single-Threaded ist, wie geht es mit mehreren Anfragen um?

Stellen Sie sich vor, Sie gehen in ein Restaurant, in dem es nur einen einzigen Koch gibt. Sie bestellen Pasta beim Kellner. Der Kellner informiert den Koch über die Bestellung und andere Kundenbestellungen. Der Koch erhält Ihre Pasta-Bestellung, erkennt jedoch, dass das Kochen Ihrer Pasta einige Zeit in Anspruch nehmen wird. Anstatt darauf zu warten, dass Ihre Pasta gar ist, lässt es sie im Herd kochen und beginnt in der Zwischenzeit mit der Verarbeitung der anderen Bestellungen/

NodeJS funktioniert ähnlich.
Chef = Hauptthread von Node.js (Node.js kann in seinem Hauptthread jeweils nur eine Sache ausführen)

Waiter = Ereignisschleife (Die Ereignisschleife nimmt eingehende Anfragen entgegen und entscheidet, wie mit ihnen umgegangen wird)

Küchenhelfer = Worker-Threads oder Betriebssystem-Hintergrundprozesse (Node.js delegiert die Arbeit an Helfer)

Wenn beispielsweise bei einem E/A-Vorgang der Webserver aufgefordert wird, Inhalte aus einer Datei abzurufen, delegiert NodeJS die Arbeit einfach an das Dateisystem des Betriebssystems und bereitet sich auf die Bearbeitung der nachfolgenden Anfrage vor. Wenn das Dateisystem antwortet, kümmert es sich darum.

Warum sollte ich NodeJS anderen Backend-Anwendungen vorziehen?

  • Gleiche Sprache im gesamten Stack: Die meisten Front-End-Entwicklungen verwenden JS-Frameworks wie Angular, React, Vue usw. Es wäre ein enormer Vorteil, wenn die Backend-Anwendung in Javascript geschrieben wäre. Full-Stack-Entwickler müssen für die Backend-Entwicklung keine neue Sprache lernen.

  • Ideal für Microservice-basierte Architektur: Die Single-Threaded-Event-Loop-Architektur von NodeJS ist für Webentwickler viel praktischer als die Multithread-Architektur, da kein Risiko besteht, dass verfügbare Threads beendet werden bei der Bearbeitung mehrerer gleichzeitiger Anfragen.

  • Schnelle Entwicklung: NodeJS ist sehr leichtgewichtig und NodeJS-Server können mit geringem Aufwand schnell betriebsbereit sein.

  • NPM: Der NodeJS Package Manager ist eine umfangreiche Bibliothek von Code, den Entwickler weltweit schreiben. Es kann problemlos als Abhängigkeit in einem Projekt verwendet werden, wodurch der Aufwand zum Schreiben von zusätzlichem Code verkürzt wird.

„NodeJS-Server können mit geringem Aufwand schnell einsatzbereit sein“ – ist das so einfach?

JA.

const { createServer } = require('node:http');

const hostname = '127.0.0.1';
const port = 3000;

const server = createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

Was dieser Code bewirkt:

  • Verwendet das http-Modul von NodeJS.
  • Konfiguriert den Host und den Port.
  • Verwendet die createServer-Methode des http-Moduls, um einen Server zu erstellen.
  • Immer wenn eine neue Anfrage empfangen wird, wird das Anfrageereignis aufgerufen und stellt zwei Objekte bereit: ein http.IncomingMessage-Objekt und ein http.ServerResponse-Objekt.
  • Der erstellte Server hört auf den Host und den Port.

Und das ist es. Wenn Sie nun node server.js ausführen, wobei server.js der Name Ihrer Codedatei ist, wird Ihr NodeJS-Server „betriebsbereit“ gemacht.

Das obige ist der detaillierte Inhalt vonEinführung in NodeJS [Einfache Erklärung]. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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