Vor einiger Zeit sah ich einen Artikel, in dem das Wort Mean erwähnt wurde. Was ist gemein?
Tatsächlich ist MENA die Abkürzung von MongoDB (nicht-relationale Datenbank) + Express (Template Engine) + AngularJS (MVC Javascript Library) + NodeJS (Server-Skript).
Zusammen erstellen sie eine moderne Webanwendung mit Vollstackentwicklung, die auf JavaScript basiert.
MongoDB:
Es ist eine leistungsstarke, flexible und skalierbare Methode, um Daten zu speichern.
Es erweitert die vielen nützlichen Funktionen relationaler Datenbanken, wie z. B. Hilfsindizierung, Reichweite und Sortierung, die integrierte Unterstützung für die Aggregation im MapReduce-Stil und die Unterstützung für die Geospatial-Indexierung.
Es ersetzt das Konzept der herkömmlichen Datenbankzeilen durch Dokumentmodelle. Das sogenannte Dokumentmodell ist tatsächlich ein Array-Objekt.
Schauen wir uns das Dokumentmodell an:
{"_id": 1, "Gruß": "Hallo, Welt!" , "foo": 3}
Jedes Dokument hat ein Feld von _id. Das Dokumentmodell repräsentiert einen Datensatz in der Datenbank mit den Feldern Gruß, Foo und _id;
Äußern:
In Bezug auf den letzten Motor Express möchte ich es in einem Satz beschreiben:
Es ist ein einfacher und flexibler Node.jsweb -Anwendungs -Framework, der eine Reihe leistungsstarker Funktionen bietet, mit denen Sie verschiedene Webanwendungen erstellen können.
Rich HTTP -Tools und Middleware aus dem Connect -Framework sind nach möchten, so dass Sie schnell und einfach eine robuste, freundliche API erstellen.
Express führt keine sekundäre Abstraktion der vorhandenen Merkmale von Node.js durch. Wir erweitern nur die Funktionen, die von Webanwendungen darauf gefordert werden.
AngularJs:
AngularJS ist eine von Google entwickelte JS -Bibliothek. Es ist die gleiche MVC -Skriptbibliothek wie Backone.
Die erste Lektion in fast jeder Sprache handelt von Hello World. Nach der Konvention werden wir auch einen machen:
Die Codekopie lautet wie folgt:
<! docType html>
<html ng-App>
<kopf>
<script src = "http://code.angularjs.org/angular-1.0.1.min.js"> </script>
</head>
<body>
Hallo {{'World'}}!
</body>
</html>
<html ng-App>
Erklärt, dass die Seite AngularJS verwendet und wenn die Seite geladen wird, fordert das Tag ng-App AngularJS an, die gesamte HTML-Seite zu verarbeiten und die Anwendung zu starten.
Dieses Beispiel druckt Hello World auf der Seite, und einige Leute sind überrascht: Warum ist Hello World so kompliziert?
Tatsächlich ist der Inhalt in {{}} eine Form der Datenbindung. Nachdem Sie das nächste Beispiel gelesen haben, werden Sie seine Kraft kennen.
Schauen wir uns das nächste Beispiel an:
Die Codekopie lautet wie folgt:
<! docType html>
<html ng-App>
<kopf>
<script src = "Angular-1.0.1.min.js"> </script>
</head>
<body>
Ihr Name: <Eingabe type = "text" ng-model = "yourname" placeholder = "World">
<hr>
Hallo {{yourname || 'Welt'}}!
</body>
</html>
Öffnen Sie diese Seite in Ihrem Browser und versuchen Sie, zufällige Zeichen in das Eingabefeld einzugeben. Sie werden feststellen, dass die eingegebenen Zeichen sofort aktualisiert und im Gruß angezeigt werden. Ist es nicht sehr magisch?
Der Gedanke an. Alle Änderungen am Eingabefeld werden sofort in der Modellvariablen (One Direction) reflektiert, und alle Änderungen an der Modellvariablen werden sofort im Grußtext (die andere Richtung) reflektiert.
Dieses Beispiel enthält die folgenden wichtigen Hinweise:
1. Texteingangsanweisung <Eingabe ng-model = ”yourname” /> ist an eine Modellvariable mit dem Namen YourName gebunden.
2. Die Doppelklammermarke fügt Ihre NAME -Modellvariable zum Begrüßungstext hinzu.
3. Sie müssen keinen Event -Hörer registrieren oder einen Event -Handler für die Anwendung hinzufügen!
Nodejs
Es handelt sich um eine Hochleistungsserver-JS-Plattform, die von Ryan Dahl entwickelt wurde.
Es wurde in der V8 -Engine entwickelt, einer von Google entwickelten JavaScript -Engine, nicht dem V8 -Motor eines Autos. Es handelt sich um eine leistungsstarke Engine, die andere Skriptsprachen weit überschreitet.
NodeJS verwendet eine asynchrone E/A -Kommunikationsmethode, die AJAX sehr ähnlich ist:
Die Codekopie lautet wie folgt:
$ .post ("url", {title: "post request"}, function (data) {
console.log ("Antwort erhalten");
})
console.log ("AJAX -Ende senden");
NodeJS -Anforderungsmethode:
Die Codekopie lautet wie folgt:
var fs = fordert ('fs');
fs.ReadFile ("/path", Funktion (Err, Datei) {
console.log ("Datei abgeschlossen");
});
console.log ("lesende Datei initiieren");
Schauen wir uns das folgende Beispiel an:
Wenn zwei Anfragen gleichzeitig ausgeführt werden, hängt der Gesamtzeitverbrauch von derjenigen ab, die die meiste Zeit verbraucht, und nicht von der Summe des Zeitverbrauchs der beiden Anfragen, da sie parallel sind.
Die Codekopie lautet wie folgt:
// die erste Anfrage
var fs = fordert ('fs');
fs.ReadFile ("/path1", Funktion (Err, Datei) {
console.log ("Datei 1 abgeschlossen");
});
// die zweite Anfrage
fs.ReadFile ("/path2", Funktion (Err, Datei) {
console.log ("Lesendatei 2 ist abgeschlossen");
});
console.log ("lesende Datei initiieren");
Ein weiterer Grund, warum NodeJS eine hohe Leistung hat, ist ereignisorientiert:
Node führt Ereignisse in Front-End-Browsern in das Back-End ein und kooperiert mit asynchronem E/A, um Ereignispunkte für die Geschäftslogik auszusetzen.
Die Art und Weise, wie Ereignisse werden, hat die Vorteile einer leichten, losen Kopplung, die sich nur auf Dinge konzentriert.