Was ist Express.js?

439

Ich bin ein Lernender in Node.js .

  1. Was ist Express.js ?
  2. Was ist der Zweck von Node.js?
  3. Warum brauchen wir eigentlich Express.js? Wie nützlich ist es für uns, mit Node.js zu arbeiten?
  4. Was ist Redis ? Kommt es mit Express.js?
Vinod
quelle
28
Scrollen Sie nach unten zur Community-Wiki-Antwort (mit +50 Kopfgeld). Ich fand das hilfreicher als die markierte Antwort.
Shishir Gupta

Antworten:

266

Dies ist zu stark vereinfacht, aber Express.js ist für Node.js das, was Ruby on Rails oder Sinatra für Ruby ist .

Express 3.x ist ein leichtes Webanwendungsframework, mit dem Sie Ihre Webanwendung auf der Serverseite in einer MVC-Architektur organisieren können. Sie können eine Vielzahl von Optionen für Ihre Vorlagensprache verwenden (z. B. EJS , Jade und Dust.js ).

Sie können dann eine Datenbank wie MongoDB mit Mongoose (zur Modellierung) verwenden, um ein Backend für Ihre Node.js-Anwendung bereitzustellen. Express.js hilft Ihnen im Grunde dabei, alles zu verwalten, von Routen bis zur Bearbeitung von Anforderungen und Ansichten.

Redis ist ein Schlüssel- / Wertspeicher, der häufig für Sitzungen und das Caching in Node.js-Anwendungen verwendet wird. Sie können viel mehr damit machen, aber dafür benutze ich es. Ich verwende MongoDB für komplexere Beziehungen, wie z. B. Benutzerbeziehungen für Werbebuchungen <-> Reihenfolge <->. Es gibt Module (insbesondere connect-redis), die mit Express.js funktionieren. Sie müssen die Redis- Datenbank auf Ihrem Server installieren .

Hier ist ein Link zum Express 3.x-Handbuch: https://expressjs.com/en/3x/api.html

chovy
quelle
20
Express ist eher wie Sinatra als wie Schienen.
halb selbst
11
Express wurde speziell von Sinatra inspiriert. Das wahrscheinlich wichtigste Merkmal ist das Routing. Es stellt auch die gesamte von connect bereitgestellte Middleware zur Verfügung (bis zu dem Punkt, an dem alle außer den am meisten spezialisierten Anwendungen, die die Middleware von connect benötigen, wahrscheinlich Express verwenden werden).
Ebohlman
Ich würde sagen, Redis ist in der Tat ideal für komplexe Beziehungen.
Plus-
Der EJS-Link ist derzeit tot.
David Spector
Ich verstehe wirklich nicht, wie MVC mit Express zusammenhängt. Wenn ich mich richtig erinnere, hat Express keine Modelle und keine Ansichten. Es ist ein Middleware-basiertes Framework, kein MVC-Framework. Bitte erklären Sie dies.
Gherman
382

1) Was ist Express.js?

Express.js ist ein Node.js- Framework. Es ist derzeit das beliebteste Framework (das auf NPM am häufigsten verwendete).

Geben Sie hier die Bildbeschreibung ein.

Es basiert auf der Konfiguration und der granularen Einfachheit der Connect-Middleware. Einige Leute vergleichen Express.js mit Ruby Sinatra mit dem sperrigen und eigensinnigen Ruby on Rails .

2) Was ist der Zweck von Node.js?

Dass Sie nicht denselben Code immer und immer wieder wiederholen müssen. Node.js ist ein Low-Level- E / A- Mechanismus mit einem HTTP-Modul. Wenn Sie nur einen HTTP - Modul verwenden, viel Arbeit wie die Nutzlast, Cookies Parsen, Speicherung Sitzungen (im Speicher oder in Redis ), das richtige Route Muster auf der Grundlage der Auswahl von regulären Ausdrücken werden müssen neu implementiert sein. Mit Express.js ist es nur für Sie da.

3) Warum brauchen wir eigentlich Express.js? Wie nützlich ist es für uns, mit Node.js zu arbeiten?

Die erste Antwort sollte Ihre Frage beantworten. Wenn nein, versuchen Sie, einen kleinen REST- API-Server in einfache Node.js (dh nur mit Kernmodulen) und dann in Express.js zu schreiben . Letzteres benötigt 5-10x weniger Zeit und Codezeilen.

Was ist Redis? Kommt es mit Express.js?

Redis ist ein schneller, dauerhafter Schlüsselwertspeicher. Sie können es optional zum Speichern von Sitzungen mit Express.js verwenden, müssen dies jedoch nicht. Standardmäßig verfügt Express.js über Speicher für Sitzungen. Redis kann auch zum Einreihen von Jobs verwendet werden, z. B. für E-Mail-Jobs.

Schauen Sie sich mein Tutorial zum REST-API-Server mit Express.js an .

MVC aber nicht von alleine

Express.js ist kein eigenständiges Model-View-Controller-Framework. Sie müssen Ihre eigenen objektrelationalen Zuordnungsbibliotheken wie Mongoose für MongoDB, Sequelize ( http://sequelizejs.com ) für SQL-Datenbanken und Waterline ( https://github.com/balderdashy/waterline ) für viele Datenbanken in die Datenbank einbringen Stapel.

Alternativen

Andere zu berücksichtigende Node.js-Frameworks ( https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API ):

UPDATE: Ich habe diese Ressource zusammengestellt, die Menschen bei der Auswahl von Node.js Frameworks hilft: http://nodeframework.com

UPDATE2: Wir haben einige GitHub-Statistiken zu nodeframework.com hinzugefügt, sodass Sie jetzt die Stufe des sozialen Beweises (GitHub-Sterne) für mehr als 30 Frameworks auf einer Seite vergleichen können.

Geben Sie hier die Bildbeschreibung ein

Voller Stapel:

Nur REST-API:

Ruby on Rails wie:

Sinatra mag:

Andere:

Middleware:

Statische Site-Generatoren:

Azat
quelle
Ist es richtig zu sagen, dass - Express.js ein Node.js-Modul ist (das Sie in Ihrer ersten Zeile als Framework angesprochen haben)? Ich habe den Begriff NodeJs moduleziemlich oft gehört. Framework innerhalb eines Frameworks ist für mich eine kleine Neuigkeit.
RBT
Ja, wie in der Praxis ist Express ein Node Package Manager (npm) -Modul (auch als Paket bezeichnet), sofern es wie andere Module von npm zu einer Anwendung hinzugefügt wird. (Wenn Sie sich den Quellordner einer Node Express-Anwendung ansehen, sehen Sie einen Ordner namens node_modules. Dieser enthält einen Unterordner namens express.) Aber er ist weitaus nützlicher als die meisten anderen Module außerhalb von npm, da er eine hat Laden von abhängigen Modulen, die dem App-Codierer effektiv eine API für allgemeine Aufgaben bereitstellen. Framework innerhalb eines Frameworks? Eher wie ein Implementierungsframework, das an ein Servererstellungsframework angehängt werden kann.
Kofferraum
15
  1. Was ist Express.js?

Express.js ist ein Node.js-Webanwendungsserver-Framework, das zum Erstellen von einseitigen, mehrseitigen und hybriden Webanwendungen entwickelt wurde. Es ist das De-facto-Standardserver-Framework für node.js.

Auf Express basierende Frameworks.

Mehrere beliebte Node.js-Frameworks basieren auf Express:

LoopBack: Hoch erweiterbares Open-Source-Framework Node.js zum schnellen Erstellen dynamischer End-to-End-REST-APIs.

Segel: MVC-Framework für Node.js zum Erstellen praktischer, produktionsfähiger Apps.

Kraken: Sichere und skalierbare Schicht, die Express durch Bereitstellung von Struktur und Konvention erweitert.

BEDEUTUNG: Überlegtes Fullstack-JavaScript-Framework, das die Entwicklung von Webanwendungen vereinfacht und beschleunigt.

  1. Was ist der Zweck von Node.js?
  2. Warum brauchen wir eigentlich Express.js? Wie nützlich ist es für uns, mit Node.js zu arbeiten?

Express bietet kinderleichtes Routing und Unterstützung für Connect Middleware und ermöglicht viele Erweiterungen und nützliche Funktionen.

Zum Beispiel,

  • Willst du Sitzungen? Es ist da
  • Möchten Sie das Parsen von POST-Body- / Abfragezeichenfolgen? Es ist da
  • Möchten Sie einfach durch Jade, Schnurrbart, EJs usw. schablonieren? Es ist da
  • Möchten Sie eine ordnungsgemäße Fehlerbehandlung, die nicht zum Absturz des gesamten Servers führt?
Muhammad Shahzad
quelle
10
  1. Express.js ist ein modulares Webframework für Node.js
  2. Es wird zur einfacheren Erstellung von Webanwendungen und -diensten verwendet
  3. Express.js vereinfacht die Entwicklung und erleichtert das Schreiben sicherer, modularer und schneller Anwendungen. Sie können all das in einfachen alten Node.js tun, aber einige Fehler können (und werden) auftauchen, einschließlich Sicherheitsbedenken (z. B. nicht ordnungsgemäß aus einem String entkommen)
  4. Redis ist ein In-Memory-Datenbanksystem, das für seine schnelle Leistung bekannt ist. Nein, aber Sie können es mit Express.js verwenden, indem Sie einen Redis-Client verwenden

Ich könnte nicht prägnanter sein. Für all Ihre anderen Bedürfnisse und Informationen ist Google Ihr Freund.

praetoriaen
quelle
3

ExpressJS ist ein Bare-Bones- Webanwendungsframework über NodeJS.

Es kann verwendet werden, um WebApps, RESTFUL-APIs usw. schnell zu erstellen.

Unterstützt mehrere Template-Engines wie Jade, EJS.

ExpressJS behält nur eine minimalistische Funktionalität als Kernfunktionen bei. Daher werden standardmäßig keine ORMs oder DBs unterstützt. Mit ein wenig Aufwand können Express-Apps in verschiedene Datenbanken integriert werden.

Eine Anleitung zum Erstellen von ExpressJS-Apps finden Sie unter folgendem Link:

ExpressJS Einführungs-Tutorial

Rishabh.IO
quelle
3

Express ist ein Modul-Framework für Node, das Sie für Anwendungen verwenden können, die auf Servern basieren, die auf Eingabe- / Verbindungsanforderungen von Clients "warten". Wenn Sie es in Node verwenden, heißt das nur, dass Sie die Verwendung der integrierten Express-Datei von Ihren Node-Modulen anfordern.

Express ist das "Rückgrat" vieler Web-Apps, die ihr Backend in NodeJS haben. Soweit ich weiß, ist sein Hauptvorteil die Bereitstellung eines Routing-Systems, das die Dienste der "Interaktion" zwischen zwei Hosts verwaltet. Es gibt viele Alternativen dafür, wie zum Beispiel Segel.

Andrei-Cristian Ene
quelle
2

Express.js ist ein Framework für Node und wird am häufigsten als Webanwendung für Node js verwendet.

Hier ist ein Link zu einem Video zum schnellen Einrichten einer Knoten-App mit Express https://www.youtube.com/watch?v=QEcuSSnqvck

Frostiy
quelle
Tolle Erklärung für absolute Anfänger!
Ankit Pandey
0

Express.js wurde von TJ Holowaychuk erstellt und jetzt von der Community verwaltet. Es ist eines der beliebtesten Frameworks in der Datei node.js. Express kann auch zur Entwicklung verschiedener Produkte wie Webanwendungen oder RESTful API verwendet werden. Weitere Informationen finden Sie auf der offiziellen Website von expressjs.com.

Raschi Goyal
quelle