Node.js Express-Framework
Express-Einführung
Express ist ein prägnantes und flexibles Node.js-Webanwendungsframework, das eine Reihe leistungsstarker Funktionen bietet, die Ihnen helfen, verschiedene Webanwendungen und umfangreiche HTTP-Tools zu erstellen.
Mit Express können Sie schnell eine voll funktionsfähige Website erstellen.
Kernfunktionen des Express-Frameworks:
Sie können Middleware einrichten, um auf HTTP-Anfragen zu reagieren.
Eine Routing-Tabelle wird definiert, um verschiedene HTTP-Anfrageaktionen auszuführen.
Sie können HTML-Seiten dynamisch rendern, indem Sie Parameter an Templates übergeben.
Express installieren
Express installieren und in der Abhängigkeitsliste speichern:
$ cnpm install express --save
Der obige Befehl installiert das Express-Framework imnode_modules-Verzeichnis des aktuellen Verzeichnisses,node_modulesUnter diesem Verzeichnis wird automatisch ein express-Verzeichnis erstellt. Die folgenden wichtigen Module müssen zusammen mit dem Express-Framework installiert werden:
body-parser- Node.js-Middleware zur Verarbeitung von JSON-, Raw-, Text- und URL-kodierten Daten.
cookie-parser- Dies ist ein Werkzeug zum Parsen von Cookies. Sie können die eingehenden Cookies über req.cookies abrufen und in Objekte umwandeln.
multer- Node.js-Middleware zur Verarbeitung von Formulardaten mit enctype="multipart/form-data" (legt die MIME-Kodierung des Formulars fest).
$ cnpm install body-parser --save $ cnpm install cookie-parser --save $ cnpm install multer --save
Nach der Installation können wir die von Express verwendete Versionsnummer überprüfen:
$ cnpm list express /data/www/node └── [email protected] -> /Users/tianqixin/www/node/node_modules/.4.15.2@express
Erstes Express-Framework-Beispiel
Als Nächstes verwenden wir das Express-Framework, um "Hello World" auszugeben.
Im folgenden Beispiel binden wir das express-Modul ein und antworten mit der Zeichenkette "Hello World", nachdem der Client eine Anfrage gestellt hat.
Erstellen Sie die Datei express_demo.js mit dem folgenden Code:
Code der Datei express_demo.js:
Führen Sie den obigen Code aus:
$ node express_demo.js 应用实例,访问地址为 http://0.0.0.0:8081
Besuchen Sie http://127.0.0.1:8081 im Browser, das Ergebnis ist in der folgenden Abbildung dargestellt:

Anfrage und Antwort
Express-Anwendungen verwenden die Parameter von Callback-Funktionen:requestundresponseObjekte, um request- und response-Daten zu verarbeiten.
app.get('/', function (req, res) {
// --
})
requestundresponseDetaillierte Einführung in die Objekte:
Request-Objekt- Das Request-Objekt repräsentiert eine HTTP-Anfrage und enthält Eigenschaften wie den Request-Query-String, Parameter, Inhalt und HTTP-Header. Häufige Eigenschaften sind:
- req.app: Wenn der Callback eine externe Datei ist, verwende req.app, um auf die Express-Instanz zuzugreifen
- req.baseUrl: Ruft den URL-Pfad ab, unter dem die Route aktuell eingebunden ist
- req.body / req.cookies: Ruft den „Request-Body“ / die Cookies ab
- req.fresh / req.stale: Ermittelt, ob die Anfrage noch „fresh“ ist
- req.hostname / req.ip: Ruft den Hostnamen und die IP-Adresse ab
- req.originalUrl: Ruft die ursprüngliche Anfrage-URL ab
- req.params: Ruft die Parameter der Route ab
- req.path: Ruft den Anfragepfad ab
- req.protocol: Ruft den Protokolltyp ab
- req.query: Ruft den Query-Parameter-String der URL ab
- req.route: Ruft die aktuell übereinstimmende Route ab
- req.subdomains: Ruft die Subdomains ab
- req.accepts(): Überprüft die akzeptablen Dokumenttypen für die Anfrage
- req.acceptsCharsets / req.acceptsEncodings / req.acceptsLanguages: Gibt die erste akzeptable Zeichenkodierung der angegebenen Zeichensätze zurück
- req.get(): Ruft den angegebenen HTTP-Anfrage-Header ab
- req.is(): Bestimmt den MIME-Typ des Anfrage-Headers Content-Type
Response-Objekt- Das Response-Objekt repräsentiert die HTTP-Antwort, d. h. die HTTP-Antwortdaten, die beim Empfang einer Anfrage an den Client gesendet werden. Häufige Eigenschaften sind:
- res.app: Entspricht req.app
- res.append(): Hängt den angegebenen HTTP-Header an
- res.set() setzt die zuvor gesetzten Header nach res.append() zurück
- res.cookie(name, value [, option]): Setzt Cookie
- Option: domain / expires / httpOnly / maxAge / path / secure / signed
- res.clearCookie(): Löscht Cookie
- res.download(): Überträgt die Datei unter dem angegebenen Pfad
- res.get(): Gibt den angegebenen HTTP-Header zurück
- res.json(): Sendet eine JSON-Antwort
- res.jsonp(): Sendet eine JSONP-Antwort
- res.location(): Setzt nur den Location-HTTP-Header der Antwort, ohne den Statuscode zu setzen oder die Antwort zu schließen.
- res.redirect(): Setzt den Location-HTTP-Header der Antwort und setzt den Statuscode 302
- res.render(view, [locals], callback): Rendert eine View und übergibt die gerenderte Zeichenkette an den Callback. Wenn während des Renderns ein Fehler auftritt, wird next(err) automatisch aufgerufen. Dem Callback werden der eventuell aufgetretene Fehler und die gerenderte Seite übergeben, sodass keine automatische Ausgabe erfolgt.
- res.send(): Sendet eine HTTP-Antwort
- res.sendFile(path [, options] [, fn]): Überträgt die Datei unter dem angegebenen Pfad - Setzt Content-Type automatisch basierend auf der Dateiendung
- res.set(): Setzt HTTP-Header; Sie können mehrere Header gleichzeitig setzen, indem Sie ein Objekt übergeben
- res.status(): Setzt den HTTP-Statuscode
- res.type(): Setzt den MIME-Typ von Content-Type
Routing
Wir haben bereits die grundlegenden Anwendungen von HTTP-Anfragen kennengelernt, und das Routing bestimmt, wer (das angegebene Skript) auf Client-Anfragen antwortet.
In HTTP-Anfragen können wir die angeforderte URL und GET/POST-Parameter durch Routing extrahieren.
Als Nächstes erweitern wir Hello World, indem wir einige Funktionen hinzufügen, um mehr Arten von HTTP-Anfragen zu verarbeiten.
Erstellen Sie die Datei express_demo2.js mit dem folgenden Code:
Code der Datei express_demo2.js:
Führen Sie den obigen Code aus:
$ node express_demo2.js 应用实例,访问地址为 http://0.0.0.0:8081
Als Nächstes können Sie versuchen, verschiedene Adressen wie http://127.0.0.1:8081 aufzurufen, um den Effekt zu sehen.
Rufen Sie http://127.0.0.1:8081/list_user im Browser auf, das Ergebnis ist in der folgenden Abbildung dargestellt:
Rufen Sie http://127.0.0.1:8081/abcd im Browser auf; das Ergebnis wird in der folgenden Abbildung gezeigt:
Rufen Sie http://127.0.0.1:8081/abcdefg im Browser auf; das Ergebnis wird in der folgenden Abbildung gezeigt:
Statische Dateien
Express bietet eingebaute Middleware express.static , um statische Dateien wie Bilder, CSS, JavaScript usw. bereitzustellen.
Sie können express.static als Middleware verwenden, um den Pfad für statische Dateien festzulegen. Wenn Sie beispielsweise Bilder, CSS- und JavaScript-Dateien im Verzeichnis public ablegen, können Sie schreiben:
app.use('/public', express.static('public'));
Wir können einige Bilder im Verzeichnis public/images ablegen, wie unten gezeigt:
node_modules server.js public/ public/images public/images/logo.png
Lassen Sie uns die "Hello World"-Anwendung erneut ändern, um die Funktionalität zur Verarbeitung statischer Dateien hinzuzufügen.
Erstellen Sie die Datei express_demo3.js; der Code lautet wie folgt:
Code der Datei express_demo3.js:
Führen Sie den obigen Code aus:
$ node express_demo3.js 应用实例,访问地址为 http://0.0.0.0:8081
Führen Sie den obigen Code aus:
Rufen Sie http://127.0.0.1:8081/public/images/logo.png im Browser auf (dieses Beispiel verwendet das Beispiel-Tutorial-Logo), das Ergebnis ist in der folgenden Abbildung dargestellt:
GET-Methode
Das folgende Beispiel zeigt, wie zwei Parameter über die GET-Methode in einem Formular übermittelt werden. Wir können denprocess_getRouter verwenden, um die Eingabe zu verarbeiten:
Code der Datei index.html:
Code der Datei server.js:
Führen Sie den obigen Code aus:
node server.js 应用实例,访问地址为 http://0.0.0.0:8081
Rufen Sie http://127.0.0.1:8081/index.html im Browser auf, wie in der Abbildung gezeigt:
Jetzt können Sie Daten in das Formular eingeben und es absenden, wie unten gezeigt:
POST-Methode
Das folgende Beispiel zeigt, wie zwei Parameter über die POST-Methode in einem Formular übermittelt werden. Wir können denprocess_postRouter verwenden, um die Eingabe zu verarbeiten:
Code der Datei index.html:
Code der Datei server.js:
Führen Sie den obigen Code aus:
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
Rufen Sie http://127.0.0.1:8081/index.html im Browser auf, wie in der Abbildung gezeigt:
Jetzt können Sie Daten in das Formular eingeben und es absenden, wie unten gezeigt:
Datei-Upload
Unten erstellen wir ein Formular zum Hochladen von Dateien unter Verwendung der POST-Methode, wobei das enctype-Attribut des Formulars auf multipart/form-data gesetzt ist.
Code der Datei index.html:
Code der Datei server.js:
Führen Sie den obigen Code aus:
$ node server.js 应用实例,访问地址为 http://0.0.0.0:8081
Rufen Sie http://127.0.0.1:8081/index.html im Browser auf, wie in der Abbildung gezeigt:
Jetzt können Sie Daten in das Formular eingeben und es absenden, wie unten gezeigt:
Cookie
Wir können Middleware verwenden, um Cookie-Informationen an den Node.js-Server zu senden. Der folgende Code gibt den vom Client gesendeten Cookie aus:
Code der Datei express_cookie.js:
Führen Sie den obigen Code aus:
$ node express_cookie.js
Jetzt können Sie auf http://127.0.0.1:8081 zugreifen und die Terminalausgabe anzeigen, wie unten gezeigt:
Verwandte Materialien
- Offizielle Express-Website:http://expressjs.com/
- Chinesische Version der Express 4.x API:Express4.x API Chinesisch
- Express4.x API:http://expressjs.com/zh-cn/4x/api.html