505 Stimmen

Was ist Node.js?

Ich verstehe nicht ganz, was Node.js dreht sich alles um. Vielleicht liegt es daran, dass ich hauptsächlich Entwickler von webbasierten Geschäftsanwendungen bin. Was ist das und wozu dient es?

Soweit ich das verstanden habe, ist das so:

  1. Das Programmiermodell ist ereignisgesteuert, insbesondere die Art und Weise, wie es mit E/A .
  2. Sie verwendet JavaScript und der Parser ist V8 .
  3. Es kann leicht verwendet werden, um gleichzeitige Serveranwendungen zu erstellen.

Habe ich das richtig verstanden? Wenn ja, was sind dann die Vorteile der ereignisgesteuerten E/A, ist es nur mehr für die Gleichzeitigkeit Zeug? Auch, ist die Richtung von Node.js zu einem Rahmen wie, JavaScript-basierte (V8-basierte) Programmiermodell zu werden?

8voto

Renato Punkte 383

Zwei gute Beispiele sind die Verwaltung von Vorlagen und die Verwendung von progressiven Erweiterungen. Sie brauchen nur ein paar kleine JavaScript-Code-Stücke, damit es perfekt funktioniert.

Ich empfehle Ihnen dringend, diese Artikel anzusehen und zu lesen:

Nehmen Sie eine beliebige Sprache und versuchen Sie sich daran zu erinnern, wie Sie Ihre HTML-Dateivorlagen verwalten und was Sie tun müssen, um eine einzelne Datei zu aktualisieren. CSS Klassenname in Ihrem DOM Struktur (z. B. wenn ein Benutzer auf einen Menüpunkt geklickt hat und Sie diesen als "ausgewählt" markieren und den Inhalt der Seite aktualisieren möchten).

Mit Node.js ist es so einfach, wie dies in clientseitigem JavaScript-Code zu tun. Holen Sie sich Ihren DOM-Knoten und wenden Sie Ihre CSS-Klasse auf diesen an. Holen Sie sich Ihren DOM-Knoten und innerHTML Ihren Inhalt (Sie benötigen einige zusätzliche JavaScript-Code, um dies zu tun. Lesen Sie den Artikel, um mehr zu erfahren).

Ein weiteres gutes Beispiel ist, dass Sie Ihre Webseite mit ein und demselben Stück Code sowohl mit aktiviertem als auch deaktiviertem JavaScript kompatibel machen können. Stellen Sie sich vor, Sie haben eine Datumsauswahl in JavaScript, die es Ihren Nutzern ermöglicht, ein beliebiges Datum in einem Kalender auszuwählen. Sie können dasselbe Stück JavaScript-Code schreiben (oder verwenden), um es mit eingeschaltetem oder ausgeschaltetem JavaScript funktionieren zu lassen.

7voto

adeleinr Punkte 645

Es gibt eine sehr gute Analogie zu einem Schnellimbiss, die das ereignisgesteuerte Modell von Node.js am besten erklärt, siehe den vollständigen Artikel, Node.js, Arztpraxen und Fast-Food-Restaurants - Verständnis der ereignisgesteuerten Programmierung

Hier ist eine Zusammenfassung:

Wenn das Fast-Food-Lokal ein traditionelles, auf einem Faden basierendes Modell verfolgt, würden Sie Ihr Essen bestellen und in der Schlange warten, bis Sie es erhalten. Die Person hinter Ihnen könnte erst dann bestellen, wenn Ihre Bestellung fertig ist. In einem ereignisgesteuerten Modell bestellen Sie Ihr Essen und verlassen dann die Schlange, um zu warten. Alle anderen können dann ihre Bestellung aufgeben.

Node.js ist ereignisgesteuert, aber die meisten Webserver sind threadbasiert.York erklärt, wie Node.js funktioniert:

  • Sie verwenden Ihren Webbrowser, um eine Anfrage für "/about.html" auf einem Node.js-Webserver.

  • Der Node.js-Server nimmt Ihre Anfrage entgegen und ruft eine Funktion auf, um diese Datei von der Festplatte abzurufen.

  • Während der Node.js-Server darauf wartet, dass die Datei abgerufen wird, bedient er die nächste Webanforderung.

  • Wenn die Datei abgerufen wird, gibt es eine Callback-Funktion, die in die Warteschlange des Node.js-Servers eingefügt wird.

  • Der Node.js-Server führt diese Funktion aus, die in diesem Fall die Seite "/about.html" gerendert und an Ihren Webbrowser zurückgeschickt wird.

6voto

nes1983 Punkte 14621

Nun, Ich verstehe, dass

  • Das Ziel von Node ist es, eine einfache Möglichkeit zu bieten skalierbare Netzwerkprogramme zu erstellen.
  • Node ist ähnlich aufgebaut und beeinflusst von Systemen wie Rubys Event Machine oder Pythons Twisted.
  • Evented I/O für V8-Javascript.

Für mich bedeutet das, dass Sie mit allen drei Annahmen richtig lagen. Die Bibliothek sieht wirklich vielversprechend aus!

6voto

Quinton Pike Punkte 3737

Vergessen Sie auch nicht zu erwähnen, dass Googles V8 SEHR schnell ist. Es konvertiert tatsächlich den JavaScript-Code in Maschinencode mit der gleichen Leistung wie kompilierte Binärdateien. So zusammen mit all den anderen großen Dinge, es ist Wahnsinnig schnell.

3voto

Charles Punkte 31

F: Das Programmiermodell ist ereignisgesteuert, insbesondere die Art und Weise, wie es mit E/A .

Richtig. Es verwendet Callbacks, so dass jede Anfrage zum Zugriff auf das Dateisystem dazu führt, dass eine Anfrage an das Dateisystem gesendet wird und Node.js dann mit der Verarbeitung seiner nächsten Anfrage beginnt. Node.js kümmert sich erst dann um die E/A-Anfrage, wenn es eine Antwort vom Dateisystem erhält, und führt dann den Callback-Code aus. Es ist jedoch auch möglich, synchrone E/A-Anfragen (d. h. blockierende Anfragen) zu stellen. Der Entwickler hat die Wahl zwischen asynchron (Rückrufe) und synchron (Warten).

F: Es verwendet JavaScript und der Parser ist V8.

Ja

F: Es kann leicht verwendet werden, um gleichzeitige Serveranwendungen zu erstellen.

Ja, allerdings müssten Sie eine ganze Menge JavaScript von Hand programmieren. Es könnte besser sein, sich ein Framework anzusehen, wie z. B. http://www.easynodejs.com/ - die eine vollständige Online-Dokumentation und eine Beispielanwendung enthält.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X