suchen
HeimWeb-Frontendjs-TutorialNode.js-Tutorial für Anfänger (1)

Node.js-Tutorial für Anfänger (1)

Mar 12, 2018 pm 05:17 PM
javascriptnode.js新手

Dieses Mal bringe ich Ihnen ein Anfänger-Tutorial zu Node.js. Was sind die Vorsichtsmaßnahmen für Anfänger-Tutorials zur Verwendung von Node.js?

Hauptzeile: Was ist Node.js--> Eigenschaften von Node.js--> -- > Paket--> Nicht blockierende, ereignisgesteuerte Funktion-->

Was ist ein Knoten? Schauen Sie sich zunächst den Namen Node.js an. Auf den ersten Blick denken einige Leute, dass es sich bei diesem Ding um eine Bibliothek oder ein Framework wie jQuery handelt, aber in Wirklichkeit handelt es sich nicht um eine Plattform, die die Ausführung von JavaScript auf dem Server ermöglicht . oder Node.js ist ein Tool, das die Ausführung von JavaScript in einer Nicht-Browser-Umgebung ermöglicht. Node.js verwendet die sogenannte schnellste Chrome v8-Engine der Welt. Sie besteht aus zwei Teilen, einschließlich Core JavaScript und Node Core JavaScript besteht aus der Standardbibliothek und bezieht sich tatsächlich auf ECMAScript, was bedeutet, dass es nur das ECMAScript in unseren js-Skripten auf der Browserseite enthält, mit Ausnahme unseres Dokumentobjektmodells, das DOM ist, und des Browserobjektmodells, das BOM ist Die Leute denken, dass Node Kompatibilitätsprobleme hat? Es gibt kein Kompatibilitätsproblem mit Node, da wir das js-Skript des Client-Browsers gelernt haben und verstehen sollten, dass sich das js-Kompatibilitätsproblem, über das wir oft sprechen, tatsächlich auf das Kompatibilitätsproblem unseres DOM und BOM bezieht. Was ist also die Node-Standardbibliothek? Dies ähnelt unserer C-Standardbibliothek oder C++-Standarderweiterungsbibliothek. Die Eigenschaft von Node.js ist, dass unser JavaScript in unsere erstklassige Skriptwelt integriert werden kann Schauen Sie sich zunächst das erste Beispiel an, helloworld. Scheint dieses helloworld komplizierter zu sein als andere Sprachen? Aber wir können einen Blick auf die Funktionen werfen, die durch diese 6 Codezeilen implementiert werden. Eine der Säulen von Node.js ist das Modul, also ist das erste, was wir lernen müssen ein Modul? Ein Modul ist eigentlich eine JS-Datei. Wenn wir in unserem Client-Browser eine CSS-Datei einbetten und eine andere CSS-Datei einführen möchten, können wir die @import-Direktive verwenden. Wenn wir jedoch in unserem JS eine andere CSS-Datei einführen möchten, Das bedeutet natürlich nicht, dass wir mit createElement ein Skript-Tag erstellen und es dann an unseren HTML-Code anhängen können, aber egal, was passiert Ja, unser Knoten hat dieses Problem gelöst. In unserem Knoten ist eine js-Datei direkt ein Modul. Wie können wir also eine weitere js-Datei in eine js-Datei einfügen? Wir können es über eine Funktion namens „require“ einführen. Wir können jedes Modul als ein größeres Objekt behandeln. Sie werden schließlich einige Eigenschaften und Methoden verfügbar machen. Wir tun dies über eine Funktion namens „module.exports“, die Attribute und Methoden verfügbar macht Zu den gängigen Kernmodulen gehören das http-Modul, das betriebssystembezogene Modul und das fs-Modul, das Vorgänge im Dateisystem verarbeitet , Util-Modul-Tools, und das andere ist das lokale Modul. Das sogenannte lokale Modul bedeutet, dass wir unser eigenes Modul erstellen können. Eine größere Einheit ist das Paket. Wir können darüber nachdenken, wir können uns ein Modul als eine unserer Dateien vorstellen und wir können uns das Paket als einen Ordner vorstellen, was bedeutet, dass wir einen Ordner verwenden können, um eine Reihe von Dateien mit ähnlichen Funktionen zusammenzustellen und sie zu verpacken. Wenn es um Pakete geht, sind neben den von uns selbst erstellten Paketen auch einige Pakete von Drittanbietern wichtig. Auf der Website npm.org gibt es eine große Anzahl von Paketen von Drittanbietern, die von Dutzenden implementiert wurden Tausende von Menschen wollen es nutzen, wie soll man es konkret nutzen?Um uns die Verwendung von Paketen von Drittanbietern zu erleichtern, hat unser Knoten ein Tool namens Paketverwaltungstool entwickelt. Wir können uns einfach ansehen, wie wir dieses Ding verwenden Installieren Sie es. Eine davon ist die globale Installation, die andere ist möglicherweise nicht genau das Gleiche wie bei anderen Sprachen. Beispielsweise sind global installierte Pakete im Allgemeinen für Befehlszeilenoperationen geeignet Unser Lessc, ein weiteres lokales Paket, wird im Allgemeinen in einigen Projekten verwendet, an denen wir gerade arbeiten. Wenn es nur diese Dinge enthält, hat Node.js natürlich keine großen Funktionen, da diese Dinge tatsächlich bereits in anderen Sprachen verfügbar sind ​Wie Python und Ruby, das größte Merkmal von Node.js sind tatsächlich die asynchronen, nicht blockierenden und ereignisgesteuerten Module, die sich stark von anderen Sprachen unterscheiden Ich hoffe, dass jeder dieses Beispiel verstehen kann, vorausgesetzt, dass wir synchrone E/A implementieren und eine SQL-Anweisung wie Python schreiben möchten Alles in dieser Form, das heißt, zuerst db.query verwenden und dann eine SQL-Abfrage blockieren und darauf warten, dass die Datenbank die Ergebnisse zurückgibt und sie in einer res-Variablen speichert, aber das Folgende ist die tatsächliche Schreibweise, die Node verwendet Es ist ersichtlich, dass diese Anweisung tatsächlich eine solche SQL-Abfrage generiert und eine Funktion als Rückruffunktion einfügt Die Anweisung wird nicht direkt ausgeführt, sondern rückwärts. Wann wird der darin enthaltene Inhalt ausgeführt? Warten Sie, bis meine Datenbank die Nachricht zurückgibt, geben Sie dann die Rückruffunktion über die Ereignisschleife ein und geben Sie dann die Abfrageergebnisse aus. Dies ist der asynchrone E/A-Modus. Anschließend erkläre ich, was Synchronisation und was asynchron ist und was das Programm ausführt IO Der Vorgang kann lange dauern und Hunderttausende oder Hunderte Millionen Befehlszyklen dauern, aber die Ausführung einer JavaScript-Anweisung dauert möglicherweise nur ein paar Hundert oder Tausende von Befehlszyklen. Natürlich kann sie optimiert werden Es dauert möglicherweise nur ein paar Dutzend, daher ist es Zeitverschwendung, wenn das Betriebssystem und die CPU asynchrone Planungsmethoden durch Interrupts implementieren. Dies bedeutet, dass das Betriebssystem hängen bleibt Aktueller Prozess und gibt dann die Kontrolle über die CPU an andere Prozesse weiter. Wenn die E/A abgeschlossen ist, setzt das Betriebssystem die Ausführung fort. Gleichzeitig können Sie auf die Ergebnisse der E/A-Operation zugreifen Die Anforderungsmethode heißt Es ist synchrones IO oder blockierendes IO, aber im IO-Modus in Node verwenden wir asynchrones IO oder nicht blockierendes IO. Dies bedeutet, dass der Prozess, nachdem er eine IO-Anfrage initiiert hat, sofort zurückkehrt und die Ausführung fortsetzt Andere Aufgaben ausführen und dann andere Mittel verwenden, um zu benachrichtigen, dass der E/A-Vorgang abgeschlossen ist, und dann den Logikcode verarbeiten, wenn der nicht blockierende E/A-Vorgang initiiert wird , führt aber weiterhin das Ereignis aus und tritt dann in die Ereignisschleife ein, um andere Ereignisse zu verarbeiten. Das Konzept eines Ereignisses und einer Ereignisschleife wird hier in einem Ereignis abstrahiert Das gesamte Programm ist eine Ereignisschleife, und die Ereignisschleife wird weiterhin eine sogenannte Ereigniswarteschlange verarbeiten. Das heißt, ich habe am Anfang ein Ereignis, und dann können während des Ausführungsprozesses einige Anforderungen initiiert werden, z. B. E/A-Anforderungen Nachdem die E/A-Anforderung abgeschlossen ist, wird die Ereigniswarteschlange vor der Verarbeitung in die Ereigniswarteschlange eingefügt. Dies ist ein Verarbeitungsmodus, der auf der Ereignisschleife basiert Ein sehr klassischer und häufig verwendeter Modus, wie z. B. qt, gtk, ist beispielsweise auch ein Ereignis, und ein Ereignis erfordert eine Rückruffunktion Ereignis eintritt. Warum verwendet Node dann dieses obskure Programmiermodell?Tatsächlich ist dies eine weitere ganz besondere Strategie von Node. Lassen Sie uns zunächst über das Parallelitätsmodell des Blockierungsmodus sprechen. Wenn wir beispielsweise einen Webserver entwickeln möchten, muss dieser natürlich Parallelitätsanforderungen haben. Es kann mehreren Benutzern gleichzeitig den Zugriff ermöglichen. Dies bedeutet nicht, dass ich die Anfrage eines Benutzers verarbeitet habe. In diesem Fall ist die Verarbeitungsgeschwindigkeit sehr langsam Wenn der Benutzer sehr langsam ist und die Verbindung nicht trennt, warten andere Benutzer weiter, was unangemessen ist. Um Parallelität im Blockierungsmodus zu erreichen, muss ein Prozess verwendet werden, der nur eine Aufgabe verarbeiten kann Der Durchsatz der CPU, der verwendet werden muss, ist möglicherweise viel mehr als die Anzahl der CPU-Kerne. Dies ist beispielsweise für eine unserer Logiken unvorhersehbar Berechnen Sie zuerst einen Teil und initiieren Sie dann eine E/A-Anforderung, z. B. das Lesen einer Datei oder das Schreiben einer Datei oder das Initiieren einer Netzwerkanforderung, und geben Sie dann unseren zweiten Berechnungsteil ein. Um Parallelität zu erreichen, können wir den Multithreading-Modus verwenden und ihn ausführen Ein solches Beispiel: Angenommen, wir haben eine einzelne CPU, dann übernimmt der erste Thread die CPU zur Berechnung und erreicht dann die E/A-Anforderungsstufe. Zu diesem Zeitpunkt wird die Steuerung der CPU übertragen Zu diesem Zeitpunkt übernimmt der zweite Thread die CPU, tritt dann in die E/A ein, wird erneut blockiert und gibt dann die Kontrolle über die CPU, Thread 3, Thread 4, Thread 5 usw. frei. Anschließend kann es zu einer Leerlaufzeit kommen in der Mitte, und warten Sie dann auf Thread 1. Die E/A ist beendet, und dann wird festgestellt, dass die CPU nicht belegt ist. Sie verwendet die CPU, um Berechnungen einzugeben, z. B. einen gleichzeitigen Präemptivmodus, der auf Berechnung und E/A basiert, jedoch nicht Blockierungsmodell, sein Modell wird wie folgt aussehen: Eine Single-Threaded-Berechnung 1 initiiert eine asynchrone E/A-Anfrage. Zu diesem Zeitpunkt wird direkt eine andere Berechnung 1 eingegeben, die möglicherweise von einem anderen Benutzer initiiert wurde, und dann eine initiiert zweite Anfrage, und warten Sie dann auf 5 Benutzer. Die Berechnung des ersten Benutzers ist zu diesem Zeitpunkt beendet, und dann ist unsere Ereignisschleife ein einzelner Thread, der die vom ersten Benutzer initiierte E/A-Anfrage ausführt Theoretisch beträgt die Auslastung der CPU durch den Prozess im nicht blockierenden Modus 100 %. Dies ist eine ideale Situation. Ein einzelner Thread kann den maximalen Durchsatz erreichen, ohne dass mehrere Threads erforderlich sind. Wenn wir beispielsweise mehrere Kerne haben, wenn wir 2 Kerne haben, öffnen wir 2 Threads. Was ist dann der Vorteil des Nichtblockierens gegenüber dem Blockieren? Multithreading klingt schnell, ist aber tatsächlich nicht so schnell. Aufgrund der Zeitscheibensegmentierung ist das Wechseln der Stationen alle 20 ms sehr ineffizient bei der Auslastung des CPU-Cache, und die Nichtblockierung ist nicht sehr Auch gut. Ja, es wird leicht zur Rückrufhölle führen. Lesen Sie zuerst die erste Datei und dann die zweite Datei. Ich habe hier gerade die Grundlagen von Node vorgestellt. Welche Anwendungen gibt es, nachdem ich lange über Node gesprochen habe? Erstens verfügt Node über viele Module von Drittanbietern. Wenn wir beispielsweise eine Website erstellen möchten, können wir eine Vorlagen-Engine namens Jade verwenden CSS generieren, und es gibt Javascript-Komprimierungstools. Die Verwendung von WebSocket verfügt über Socket.io, die SQL-Datenbank über ORM, OAuth, Daemon-Prozess, Befehlszeilenanalyse und Syntaxanalyse, obwohl es nichts mit DOM zu tun hat. Es kann tatsächlich Datei-Upload, Syntax-Hervorhebung, Parsing-Markdown, Codierungskonvertierung, Bildverarbeitung, Coffeescript und einige statische Analysen auf der Browserseite verarbeiten. Dies ist meine heutige Einführung in Node.js.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.

Empfohlene Lektüre:

Das Ausführungsprinzip des Node.js-Codes

Detaillierte Erläuterung der Verwendung von $apply( ) in AngularJS

Das obige ist der detaillierte Inhalt vonNode.js-Tutorial für Anfänger (1). 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
Ist JavaScript in C geschrieben? Prüfung der BeweiseIst JavaScript in C geschrieben? Prüfung der BeweiseApr 25, 2025 am 12:15 AM

Ja, der Motorkern von JavaScript ist in C. 1) Die C -Sprache bietet eine effiziente Leistung und die zugrunde liegende Steuerung, die für die Entwicklung der JavaScript -Engine geeignet ist. 2) Die V8-Engine als Beispiel wird sein Kern in C geschrieben, wobei die Effizienz und objektorientierte Eigenschaften von C kombiniert werden.

JavaScripts Rolle: das Web interaktiv und dynamisch machenJavaScripts Rolle: das Web interaktiv und dynamisch machenApr 24, 2025 am 12:12 AM

JavaScript ist das Herzstück moderner Websites, da es die Interaktivität und Dynamik von Webseiten verbessert. 1) Es ermöglicht die Änderung von Inhalten, ohne die Seite zu aktualisieren, 2) Webseiten durch DOMAPI zu manipulieren, 3) Komplexe interaktive Effekte wie Animation und Drag & Drop, 4) die Leistung und Best Practices optimieren, um die Benutzererfahrung zu verbessern.

C und JavaScript: Die Verbindung erklärteC und JavaScript: Die Verbindung erklärteApr 23, 2025 am 12:07 AM

C und JavaScript erreichen die Interoperabilität durch WebAssembly. 1) C -Code wird in das WebAssembly -Modul zusammengestellt und in die JavaScript -Umgebung eingeführt, um die Rechenleistung zu verbessern. 2) In der Spieleentwicklung kümmert sich C über Physik -Engines und Grafikwiedergabe, und JavaScript ist für die Spiellogik und die Benutzeroberfläche verantwortlich.

Von Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptVon Websites zu Apps: Die verschiedenen Anwendungen von JavaScriptApr 22, 2025 am 12:02 AM

JavaScript wird in Websites, mobilen Anwendungen, Desktop-Anwendungen und serverseitigen Programmierungen häufig verwendet. 1) In der Website -Entwicklung betreibt JavaScript DOM zusammen mit HTML und CSS, um dynamische Effekte zu erzielen und Frameworks wie JQuery und React zu unterstützen. 2) Durch reaktnatives und ionisches JavaScript wird ein plattformübergreifendes mobile Anwendungen entwickelt. 3) Mit dem Elektronenframework können JavaScript Desktop -Anwendungen erstellen. 4) Node.js ermöglicht es JavaScript, auf der Serverseite auszuführen und unterstützt hohe gleichzeitige Anforderungen.

Python gegen JavaScript: Anwendungsfälle und Anwendungen verglichenPython gegen JavaScript: Anwendungsfälle und Anwendungen verglichenApr 21, 2025 am 12:01 AM

Python eignet sich besser für Datenwissenschaft und Automatisierung, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python funktioniert in Datenwissenschaft und maschinellem Lernen gut und unter Verwendung von Bibliotheken wie Numpy und Pandas für die Datenverarbeitung und -modellierung. 2. Python ist prägnant und effizient in der Automatisierung und Skripten. 3. JavaScript ist in der Front-End-Entwicklung unverzichtbar und wird verwendet, um dynamische Webseiten und einseitige Anwendungen zu erstellen. 4. JavaScript spielt eine Rolle bei der Back-End-Entwicklung durch Node.js und unterstützt die Entwicklung der Vollstapel.

Die Rolle von C/C bei JavaScript -Dolmetschern und CompilernDie Rolle von C/C bei JavaScript -Dolmetschern und CompilernApr 20, 2025 am 12:01 AM

C und C spielen eine wichtige Rolle in der JavaScript -Engine, die hauptsächlich zur Implementierung von Dolmetschern und JIT -Compilern verwendet wird. 1) C wird verwendet, um JavaScript -Quellcode zu analysieren und einen abstrakten Syntaxbaum zu generieren. 2) C ist für die Generierung und Ausführung von Bytecode verantwortlich. 3) C implementiert den JIT-Compiler, optimiert und kompiliert Hot-Spot-Code zur Laufzeit und verbessert die Ausführungseffizienz von JavaScript erheblich.

JavaScript in Aktion: Beispiele und Projekte in realer WeltJavaScript in Aktion: Beispiele und Projekte in realer WeltApr 19, 2025 am 12:13 AM

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

JavaScript und das Web: Kernfunktionalität und AnwendungsfälleJavaScript und das Web: Kernfunktionalität und AnwendungsfälleApr 18, 2025 am 12:19 AM

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

See all articles

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

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion