Ist nodejs js?

Nov 01, 2021 pm 03:34 PM
javascript js nodejs

nodejs ist kein js, sondern eine Plattform, die die Ausführung von js auf dem Server ermöglicht. js (vollständiger Name JavaScript) ist eine Programmiersprache und Node ist eine JavaScript-Ausführungsumgebung, die auf der Chrome V8-Engine basiert, einer Entwicklungsplattform, die die Ausführung von JavaScript auf dem Server ermöglicht.

Ist nodejs js?

Die Betriebsumgebung dieses Tutorials: Windows7-System, NodeJS-Version 12.19.0, DELL G3-Computer.

nodejs ist kein js, sondern eine Plattform, die die Ausführung von js auf dem Server ermöglicht.

Node.js wurde im Mai 2009 veröffentlicht und von Ryan Dahl entwickelt. Es handelt sich um eine JavaScript-Laufumgebung, die auf der Chrome V8-Engine basiert. Sie verwendet ein ereignisgesteuertes, nicht blockierendes I/O-Modell, um die Ausführung von JavaScript zu ermöglichen serverseitige Entwicklungsplattform, die JavaScript zu einer Skriptsprache macht, die serverseitigen Sprachen wie PHP, Python, Perl und Ruby ebenbürtig ist.

JavaScript kann serverseitige Programmierung basierend auf der Node.js-Technologie durchführen.

Funktionen von Node.js

Nicht blockierendes asynchrones io

Beim Zugriff auf die Datenbank zum Abrufen von Daten dauert es beispielsweise eine Weile. Beim herkömmlichen Single-Thread-Verarbeitungsmechanismus wird nach der Ausführung des Codes für den Zugriff auf die Datenbank der gesamte Thread angehalten und darauf gewartet, dass die Datenbank das Ergebnis zurückgibt, bevor der nachfolgende Code ausgeführt wird. Mit anderen Worten: E/A blockiert die Ausführung des Codes, wodurch die Ausführungseffizienz des Programms erheblich verringert wird.

Aufgrund des in Node.js verwendeten nicht blockierenden E/A-Mechanismus wird nach der Ausführung des Codes, der auf die Datenbank zugreift, der Code dahinter sofort ausgeführt und der Verarbeitungscode für das Datenbankrückgabeergebnis in platziert Rückruffunktion. Dadurch wird die Ausführungseffizienz des Programms verbessert.

Wenn eine E/A abgeschlossen ist, wird der Thread, der die E/A-Operation ausführt, in Form eines Ereignisses benachrichtigt und der Thread führt die Rückruffunktion dieses Ereignisses aus. Um asynchrone E/A verarbeiten zu können, muss der Thread über eine Ereignisschleife verfügen, die ständig prüft, ob nicht behandelte Ereignisse vorliegen, und diese nacheinander verarbeitet.

Im Blockierungsmodus kann ein Thread nur eine Aufgabe bearbeiten. Um den Durchsatz zu verbessern, muss Multithreading verwendet werden. Im nicht blockierenden Modus führt ein Thread immer Berechnungsvorgänge aus und die CPU-Kernauslastung dieses Threads beträgt immer 100 %. Daher ist dies eine besonders philosophische Lösung: Anstatt viele Menschen untätig zu lassen, ist es besser, dass einer sein Leben und seine Arbeit bis zum Tod riskiert.

Single-Threaded

In serverseitigen Sprachen wie Java, PHP oder .net wird für jede Client-Verbindung ein neuer Thread erstellt. Jeder Thread benötigt etwa 2 MB Speicher. Mit anderen Worten: Theoretisch beträgt die maximale Anzahl von Benutzern, die gleichzeitig mit einem Server mit 8 GB Speicher verbunden sein können, etwa 4.000. Damit eine Webanwendung mehr Benutzer unterstützen kann, muss die Anzahl der Server erhöht werden, und natürlich steigen auch die Hardwarekosten der Webanwendung.

Node.js erstellt nicht für jede Client-Verbindung einen neuen Thread, sondern verwendet nur einen Thread. Wenn ein Benutzer eine Verbindung herstellt, wird ein internes Ereignis ausgelöst. Durch nicht blockierende E/A- und ereignisgesteuerte Mechanismen ist das Node.js-Programm makroskopisch parallel. Mit Node.js kann ein Server mit 8 GB Speicher mehr als 40.000 Benutzerverbindungen gleichzeitig verarbeiten.

Darüber hinaus bietet Single Threading den Vorteil, dass das Betriebssystem nicht mehr den Zeitaufwand für die Thread-Erstellung und -Zerstörung hat. Allerdings bringt Single Threading auch viele Nachteile mit sich, die im Detail bei den Nachteilen von Node.js erläutert werden, bitte weiterlesen.

Ereignisgesteuert

Wenn der Client in Node den Aufbau einer Verbindung, die Übermittlung von Daten usw. anfordert, werden entsprechende Ereignisse ausgelöst. In Node kann jeweils nur eine Ereignisrückruffunktion ausgeführt werden, aber während der Ausführung einer Ereignisrückruffunktion treten andere Ereignisse auf und andere Ereignisse können stattdessen verarbeitet werden (z. B. stellt ein neuer Benutzer eine Verbindung her) und dann zurück die Rückruffunktion, die das ursprüngliche Ereignis weiterhin ausführt. Dieser Verarbeitungsmechanismus wird als „Ereignisschleifen“-Mechanismus bezeichnet.

Die unterste Ebene von Node.js ist C++ (V8 ist auch in C++ geschrieben). Fast die Hälfte des zugrunde liegenden Codes wird für die Erstellung von Ereigniswarteschlangen und Rückruffunktionswarteschlangen verwendet. Die ereignisgesteuerte Planung von Serveraufgaben kann sich nur ein Genie vorstellen. Der Tanz auf der Nadelspitze mit Hilfe eines Fadens übernimmt die Aufgabe, viele Aufgaben zu erledigen.

Ist nodejs js?

Achten Sie hier auf die Ereignisschleife, die auch als die Essenz von Node.js bezeichnet werden kann. Das Folgende ist ein Zitat von der offiziellen Website von Node.js

  ┌───────────────────────────┐
┌─>│           timers          │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │     pending callbacks     │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
│  │       idle, prepare       │
│  └─────────────┬─────────────┘      ┌───────────────┐
│  ┌─────────────┴─────────────┐      │   incoming:   │
│  │           poll            │<─────┤  connections, │
│  └─────────────┬─────────────┘      │   data, etc.  │
│  ┌─────────────┴─────────────┐      └───────────────┘
│  │           check           │
│  └─────────────┬─────────────┘
│  ┌─────────────┴─────────────┐
└──┤      close callbacks      │
   └───────────────────────────┘
Nach dem Login kopieren

Zitat von der offiziellen Website von Node:

Hinweis: Jedes Feld wird als „Phasen“ der Ereignisschleife bezeichnet.
Jede Stufe verfügt über eine FIFO-Warteschlange mit auszuführenden Rückrufen. Obwohl jede Stufe auf ihre eigene Weise etwas Besonderes ist, führt die Ereignisschleife im Allgemeinen beim Eintritt in eine bestimmte Stufe alle für diese Stufe spezifischen Vorgänge aus und führt dann Rückrufe in der Warteschlange dieser Stufe aus, bis die Warteschlange erschöpft ist oder die maximale Anzahl an Rückrufen erreicht ist hingerichtet worden. Wenn die Warteschlange erschöpft ist oder das Rückruflimit erreicht ist, geht die Ereignisschleife zur nächsten Phase über und so weiter.
Die Ereignisschleife ist ein zentraler Punkt. Interviewer stellen oft Fragen zu bestimmten Ausführungsausgaben. Sie können meinen Artikel lesen

Plattformübergreifend

Node kann zunächst nur auf der Linux-Plattform ausgeführt werden. Später, mit der Entwicklung von Node, bemerkte Microsoft seine Existenz und investierte ein Team, um Node dabei zu helfen, Kompatibilität mit der Windows-Plattform zu erreichen. Als die Version v0.6.0 veröffentlicht wurde, konnte Node direkt auf der Windows-Plattform ausgeführt werden. Node ist plattformübergreifend und basiert auf libuv.

Nachteile von Node.js

Nachteile von Single-Threading

Eine Funktion von Node.js ist Single-Threading, das viele Vorteile mit sich bringt, aber auch Nachteile mit sich bringt sind wie folgt.

  • Multi-Core-CPU kann nicht verwendet werden

  • Der Fehler führt dazu, dass die gesamte Anwendung beendet wird und keine asynchronen E/A mehr aufgerufen werden können.

  • Eine große Menge an Berechnungen belegt die CPU, was dies unmöglich macht Rufen Sie weiterhin asynchrone E/A auf.

  • Für welche Art von Anwendungen eignet sich Node.js zur Entwicklung?

Gut in I/O, nicht gut in der Berechnung. Da Node.js bei der Aufgabenplanung am besten geeignet ist und Ihr Unternehmen viele CPU-Berechnungen hat, bedeutet dies tatsächlich, dass diese Berechnung diesen einzelnen Thread blockiert, der nicht für die Node-Entwicklung geeignet ist, aber nicht ohne Lösungen, ich sage nur: Nicht ganz geeignet. Node.js eignet sich sehr gut, wenn die Anwendung eine große Menge gleichzeitiger E/A verarbeiten muss und keine sehr komplexe Verarbeitung innerhalb der Anwendung erfordert, bevor eine Antwort an den Client gesendet wird. Node.js eignet sich auch sehr gut für die Arbeit mit Web-Sockets, um interaktive Echtzeitanwendungen mit langen Verbindungen zu entwickeln. Spezifische Szenarien können wie folgt ausgedrückt werden:

Die erste Kategorie: Benutzerformular-Sammelsystem, Hintergrundverwaltungssystem, Echtzeit-Interaktionssystem, Prüfungssystem, Netzwerksoftware, Webanwendungen mit hoher Parallelität

Zweitens Die zweite Kategorie: Multiplayer-Online-Spiele basierend auf Web, Canvas usw.; Die dritte Kategorie: webbasierte Multiplayer-Echtzeit-Chat-Clients, Grafik- und Text-Live-Übertragungen;

Die fünfte Kategorie: Betrieb von Datenbanken, Bereitstellung von JSON-basierten APIs für Front-End- und mobile Endgeräte; : Yahoo hat das Cooktail-Framework geöffnet und die Funktionen des YUI3-Frontend-Frameworks mithilfe von Node auf die Serverseite ausgeweitet.

  • Tencent: Wenden Sie Node auf lange Verbindungen an, um Echtzeitfunktionalität bereitzustellen.

  • Huaban.com, Mogujie: Echtzeitbenachrichtigungen über socket.io.

  • Alibaba: Sie nutzen hauptsächlich die Leistung paralleler E/A, um eine effiziente Verteilung zu erreichen, und verfügen auch über viele Node-Frameworks.

  • LinkedIn: Mobile Websites verwenden auch Node Anforderungen für Parallelität und Echtzeit. NetEase verfügt über das Open-Source-Echtzeit-Framework Pomelo von Node

  • und so weiter...

  • [Empfohlenes Lernen: „

    nodejs-Tutorial
  • “]

Das obige ist der detaillierte Inhalt vonIst nodejs js?. 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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ist NodeJS ein Backend-Framework? Ist NodeJS ein Backend-Framework? Apr 21, 2024 am 05:09 AM

Node.js kann als Backend-Framework verwendet werden, da es Funktionen wie hohe Leistung, Skalierbarkeit, plattformübergreifende Unterstützung, ein umfangreiches Ökosystem und einfache Entwicklung bietet.

So verbinden Sie NodeJS mit der MySQL-Datenbank So verbinden Sie NodeJS mit der MySQL-Datenbank Apr 21, 2024 am 06:13 AM

Um eine Verbindung zu einer MySQL-Datenbank herzustellen, müssen Sie die folgenden Schritte ausführen: Installieren Sie den MySQL2-Treiber. Verwenden Sie mysql2.createConnection(), um ein Verbindungsobjekt zu erstellen, das die Hostadresse, den Port, den Benutzernamen, das Passwort und den Datenbanknamen enthält. Verwenden Sie „connection.query()“, um Abfragen durchzuführen. Verwenden Sie abschließend Connection.end(), um die Verbindung zu beenden.

Was sind die globalen Variablen in NodeJS? Was sind die globalen Variablen in NodeJS? Apr 21, 2024 am 04:54 AM

Die folgenden globalen Variablen sind in Node.js vorhanden: Globales Objekt: global Kernmodul: Prozess, Konsole, erforderlich Laufzeitumgebungsvariablen: __dirname, __filename, __line, __column Konstanten: undefiniert, null, NaN, Infinity, -Infinity

Was ist der Unterschied zwischen den Dateien npm und npm.cmd im Installationsverzeichnis von nodejs? Was ist der Unterschied zwischen den Dateien npm und npm.cmd im Installationsverzeichnis von nodejs? Apr 21, 2024 am 05:18 AM

Es gibt zwei npm-bezogene Dateien im Node.js-Installationsverzeichnis: npm und npm.cmd. Die Unterschiede sind wie folgt: unterschiedliche Erweiterungen: npm ist eine ausführbare Datei und npm.cmd ist eine Befehlsfensterverknüpfung. Windows-Benutzer: npm.cmd kann über die Eingabeaufforderung verwendet werden, npm kann nur über die Befehlszeile ausgeführt werden. Kompatibilität: npm.cmd ist spezifisch für Windows-Systeme, npm ist plattformübergreifend verfügbar. Nutzungsempfehlungen: Windows-Benutzer verwenden npm.cmd, andere Betriebssysteme verwenden npm.

Gibt es einen großen Unterschied zwischen NodeJS und Java? Gibt es einen großen Unterschied zwischen NodeJS und Java? Apr 21, 2024 am 06:12 AM

Die Hauptunterschiede zwischen Node.js und Java sind Design und Funktionen: Ereignisgesteuert vs. Thread-gesteuert: Node.js ist ereignisgesteuert und Java ist Thread-gesteuert. Single-Threaded vs. Multi-Threaded: Node.js verwendet eine Single-Threaded-Ereignisschleife und Java verwendet eine Multithread-Architektur. Laufzeitumgebung: Node.js läuft auf der V8-JavaScript-Engine, während Java auf der JVM läuft. Syntax: Node.js verwendet JavaScript-Syntax, während Java Java-Syntax verwendet. Zweck: Node.js eignet sich für I/O-intensive Aufgaben, während Java für große Unternehmensanwendungen geeignet ist.

Ist NodeJS eine Back-End-Entwicklungssprache? Ist NodeJS eine Back-End-Entwicklungssprache? Apr 21, 2024 am 05:09 AM

Ja, Node.js ist eine Backend-Entwicklungssprache. Es wird für die Back-End-Entwicklung verwendet, einschließlich der Handhabung serverseitiger Geschäftslogik, der Verwaltung von Datenbankverbindungen und der Bereitstellung von APIs.

So stellen Sie das NodeJS-Projekt auf dem Server bereit So stellen Sie das NodeJS-Projekt auf dem Server bereit Apr 21, 2024 am 04:40 AM

Serverbereitstellungsschritte für ein Node.js-Projekt: Bereiten Sie die Bereitstellungsumgebung vor: Erhalten Sie Serverzugriff, installieren Sie Node.js, richten Sie ein Git-Repository ein. Erstellen Sie die Anwendung: Verwenden Sie npm run build, um bereitstellbaren Code und Abhängigkeiten zu generieren. Code auf den Server hochladen: über Git oder File Transfer Protocol. Abhängigkeiten installieren: Stellen Sie eine SSH-Verbindung zum Server her und installieren Sie Anwendungsabhängigkeiten mit npm install. Starten Sie die Anwendung: Verwenden Sie einen Befehl wie node index.js, um die Anwendung zu starten, oder verwenden Sie einen Prozessmanager wie pm2. Konfigurieren Sie einen Reverse-Proxy (optional): Verwenden Sie einen Reverse-Proxy wie Nginx oder Apache, um den Datenverkehr an Ihre Anwendung weiterzuleiten

Welches soll man zwischen NodeJS und Java wählen? Welches soll man zwischen NodeJS und Java wählen? Apr 21, 2024 am 04:40 AM

Node.js und Java haben jeweils ihre Vor- und Nachteile in der Webentwicklung, und die Wahl hängt von den Projektanforderungen ab. Node.js zeichnet sich durch Echtzeitanwendungen, schnelle Entwicklung und Microservices-Architektur aus, während Java sich durch Support, Leistung und Sicherheit auf Unternehmensniveau auszeichnet.

See all articles