Werbung

Webframeworks stellen Ressourcen wie HTML-Seiten, Skripte, Bilder etc. auf verschiedenen Routen an.

Die folgende Funktion wird verwendet, um Routen in einer Express-Anwendung zu definieren –

app.method(path, handler)

Diese METHODE kann auf jedes der HTTP-Verben – get, set, put, delete – angewendet werden. Es gibt auch eine alternative Methode, die unabhängig vom Anfragetyp ausgeführt wird.

Pfad ist die Route, auf der die Anfrage ausgeführt wird.

Handler ist eine Callback-Funktion, die ausgeführt wird, wenn ein passender Anfragetyp auf der entsprechenden Route gefunden wird. Beispiel:

var express = require('express');var app = express();app.get('/hello', function(req, res){ res.send("Hello World!");});app.listen(3000);

Wenn wir unsere Anwendung starten und zu localhost:3000/hello gehen, empfängt der Server eine get-Anfrage an der Route „/hello“, unsere Express-App führt die Callback-Funktion aus, die an diese Route angehängt ist, und sendet „Hello World!“ als Antwort.

Hello

Wir können auch mehrere verschiedene Methoden an derselben Route haben. Zum Beispiel,

var express = require('express');var app = express();app.get('/hello', function(req, res){ res.send("Hello World!");});app.post('/hello', function(req, res){ res.send("You just called the post method at '/hello'!\n");});app.listen(3000);

Um diese Anfrage zu testen, öffnen Sie Ihr Terminal und verwenden Sie cURL, um die folgende Anfrage auszuführen –

curl -X POST "http://localhost:3000/hello"

Curl Anfrage

Eine spezielle Methode, all, wird von Express bereitgestellt, um alle Arten von http-Methoden an einer bestimmten Route mit der gleichen Funktion zu behandeln. Um diese Methode zu verwenden, probieren Sie Folgendes aus.

app.all('/test', function(req, res){ res.send("HTTP method doesn't have any effect on this route!");});

Diese Methode wird im Allgemeinen für die Definition von Middleware verwendet, die wir im Middleware-Kapitel besprechen werden.

Router

Routen wie oben zu definieren ist sehr mühsam zu pflegen. Um die Routen von unserer Hauptdatei index.js zu trennen, werden wir Express.Router verwenden. Erstellen Sie eine neue Datei namens things.js und geben Sie darin Folgendes ein.

var express = require('express');var router = express.Router();router.get('/', function(req, res){ res.send('GET route on things.');});router.post('/', function(req, res){ res.send('POST route on things.');});//export this router to use in our index.jsmodule.exports = router;

Um diesen Router nun in unserer index.js zu verwenden, geben Sie Folgendes vor dem app.listen-Funktionsaufruf ein.

var express = require('Express');var app = express();var things = require('./things.js');//both index.js and things.js should be in same directoryapp.use('/things', things);app.listen(3000);

Der app.use-Funktionsaufruf auf der Route ‚/things‘ verknüpft den things-Router mit dieser Route. Nun werden alle Anfragen, die unsere App an ‚/things‘ erhält, von unserem things.js-Router bearbeitet. Die ‚/‘-Route in things.js ist eigentlich eine Unterroute von ‚/things‘. Rufen Sie localhost:3000/things/ auf und Sie werden die folgende Ausgabe sehen.

Router Things

Router sind sehr hilfreich, um Belange zu trennen und relevante Teile unseres Codes zusammenzuhalten. Sie helfen beim Aufbau von wartbarem Code. Sie sollten Ihre Routen, die sich auf eine Entität beziehen, in einer einzigen Datei definieren und diese mit der obigen Methode in Ihre index.js-Datei einbinden.

Werbungen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.