Heim  >  Artikel  >  Web-Frontend  >  Erste Schritte mit nodejs Tutorial_node.js

Erste Schritte mit nodejs Tutorial_node.js

WBOY
WBOYOriginal
2016-05-16 16:30:491527Durchsuche

Vorwort

Wenn wir NodeJs nicht lernen, werden wir alt ... Als die HTML5-Welle kam, begannen viele Vorfahren die Reise von NodeJs, und zu dieser Zeit arbeitete ich noch an serverseitigen Programmen
Später bin ich zum Front-End gewechselt und der Abstand zwischen mir und der Staffel ist bereits sehr groß. Da ich serverseitige Sprachen kenne und schon lange arbeite, habe ich erst begonnen, NodeJs zu lernen und mich darauf zu konzentrieren ein komplettes Frontend
Der Plan, NodeJs dieses Mal zu lernen, lautet:
① 1-2 Wochen zum Erlernen der Grundkenntnisse
② Entwickeln Sie in etwa einer Woche ein einfaches Projekt
③ Verwenden Sie NodeJs, um eine Reihe von Tools für das mobile Debuggen zu entwickeln
④ Verpackungsbezogen (dies kann etwas weit weg sein)

NodeJs-Funktionen

① Asynchron
Vom Lesen von Dateien bis hin zu Netzwerkanforderungen wird NodeJs asynchron ausgeführt, und Rückruffunktionen spielen eine wichtige Rolle in Bezug auf das Programmiermodell

② Ereignisrückruf
Ereignisrückrufe machen Programme leichtgewichtig, die Details bleiben jedoch dem Programmierer überlassen. Allerdings ist die Rückruffunktion tatsächlich ziemlich schwer zu lesen

③ Einzelner Thread
Wenn es sich um einen Single-Thread-Knoten handelt, wäre die Sprache zu tiefgreifend. Es wäre ärgerlich, nach der In-Process-Kommunikation zu fragen, aber es gibt keine Deadlocks oder andere Probleme mit Threads
Es gibt jedoch ein Leistungsproblem, da Multi-Core nicht verwendet werden kann

Modulmechanismus/CommonJs

Früher führten wir eine serverseitige Entwicklung durch. Wenn der Code nicht gut organisiert ist, wird die spätere Wartung sehr schwierig sein, daher gibt es MVC und eine dreistufige Architektur

Jetzt rückt die Front-End-Geschäftslogik allmählich näher an das Back-End heran und hat die Back-End-Programmlogik überholt
Die kontinuierliche Zunahme der Seitenaufrufe wird zu einem Anstieg der Menge an js-Code führen. Die gute Verwaltung unseres Front-End-Codes ist zu einem Problem geworden, daher sind requireJs aufgetaucht ...
PS: Dieser Absatz hat nichts mit nodeJs zu tun...
JavaScript verfügt nicht über ein modulares System, daher wurde CommonJs vorgeschlagen, um js die Grundlage für die Entwicklung umfangreicher Anwendungen zu geben

Modulreferenz

Wenn wir auf ein Modul verweisen möchten, beispielsweise auf mathematische Berechnungen:

var math = require('math');

Moduldefinition

Wenn wir unser eigenes Modul definieren möchten, können wir dies tun

Code kopieren Der Code lautet wie folgt:
exports.add = function () {
Rückgabesumme;
}

Wenn diese Funktion in der Mathematik definiert ist, kann sie verwendet werden

math.add();

Modul-ID

Der Modulbezeichner ist der an require übergebene Parameter. Er muss in Kamel-Schreibweise benannt werden und verweist auf einen Dateipfad. Dies ist sehr ähnlich zu requireJS

Modulimplementierung

Die Modulimplementierung in Node ist in zwei Kategorien unterteilt, eine ist das Kernmodul auf Systemebene und die andere ist das vom Benutzer geschriebene Dateimodul

Die Kernmodule werden während des Kompilierungsprozesses in Binärdateien übersetzt. Nach dem Start des Node-Prozesses werden einige Kernmodule direkt in den Speicher geladen (Dateipositionierung, Kompilierung und Ausführung)

Das Dateimodul muss dynamisch geladen werden, was relativ langsam ist
Aber sobald sie geladen sind, werden diese Dateien zwischengespeichert und die zwischengespeicherten Dateien (kompilierte Dateien) werden gelesen, wenn sie erneut eingeführt werden
Gehen wir hier noch etwas weiter. Wenn wir den Unterstrich verwenden, kompilieren wir HTML, um eine Vorlagenfunktion zu bilden (es ist eigentlich nur eine Funktion, die zum Caching verwendet werden kann). Speichern Sie die kompilierte Funktion, bevor Sie das Projekt bereitstellen, und entfernen Sie die HTML-Vorlagendatei (der Optimierungseffekt ist unbekannt)

Im Knoten ist jedes Modul ein Objekt:

Code kopieren Der Code lautet wie folgt: Funktionsmodul (ID, übergeordnetes Element) {
this.id = id;
this.exports = {};
//parent ist ein Schlüsselwort und sollte nicht wahllos verwendet werden
this.parent = parent;
if (parent && parent.children) {
parent.children.push(this);
}
this.filename = null;
this.loaded = false;
this.children = [];
}



Die letzte Phase der Einführung von Dateimodulen während der Kompilierung und Ausführung. Nach dem Auffinden der spezifischen Datei erstellt der Knoten ein neues Modulobjekt, lädt es und kompiliert es entsprechend dem Pfad
Jedes erfolgreich kompilierte Modul speichert seinen Dateipfad als Index auf Module._cache

Jede Moduldatei verfügt über drei Variablen: require, exports und module, diese sind jedoch nicht in der Datei definiert (dasselbe gilt für die Variablen __filename__ und __dirname__)
Tatsächlich umschließt Node während des Kompilierungsprozesses den Kopf und das Ende der Javascript-Datei (entspricht der Übergabe der benutzerdefinierten Funktion an das Fenster)


Code kopieren Der Code lautet wie folgt:

(function (exports, require, module, __filename__, __dirname__) {
var math = require('math');
exports.area = Funktion (Radius) {
Rückgabe '';
};
});

Auf diese Weise sind die Module isoliert und beeinflussen sich nicht gegenseitig. Dies ähnelt in gewisser Weise der Zusammenstellung von Unterstrichen...

Pakete und NPM

Der Knoten organisiert seine eigenen Kernmodule, sodass Dateimodule von Drittanbietern ordnungsgemäß geschrieben und verwendet werden können. In Modulen von Drittanbietern werden die Module jedoch weiterhin an verschiedenen Stellen gehasht
Sie können nicht direkt aufeinander verweisen. Modul-Outsourcing und NPM sind ein Mechanismus, um Verbindungen herzustellen
PS: Viele Module bilden ein Paket. Das Konzept dieses Pakets ähnelt dem Konzept des Java-Pakets, daher sollte das Konzept von #assembly ähnlich sein

Nach dem Dekomprimieren einer Paketstruktur werden mehrere Dateien erstellt:
① package.json-Beschreibungsdatei
② bin ausführbares Binärverzeichnis
③ lib Javascript-Codeverzeichnis
④ Dokumentdokument (fast keines)
⑤ Testdemo

Das Obige sind einige der Spezifikationen von CommonJS-Paketen, aber wir müssen es nur ein wenig verstehen (für Anfänger muss NPM beherrscht werden, um Verwaltungspakete geschickt zu installieren).

Abhängigkeitspakete installieren

Das Installieren von Abhängigkeitspaketen ist eine gängige Methode:

npm install express

Nach der Ausführung wird das Verzeichnis node_modules im aktuellen Verzeichnis erstellt und anschließend das Express-Verzeichnis darunter erstellt ...
PS: Express ist ein beliebtes Webentwicklungs-Framework auf NodeJs, das uns hilft, schnell eine Webanwendung zu entwickeln
Nach Abschluss der Installation kann es aufgerufen werden:

Code kopieren Der Code lautet wie folgt:
var express = require('express');

Fazit

Dieser Abschnitt endet kurz und unser eigentlicher Projektprozess wird später schrittweise vertieft

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