Les cadres Web fournissent des ressources telles que des pages HTML, des scripts, des images, etc. à différents itinéraires.
La fonction suivante est utilisée pour définir des itinéraires dans une application Express –
app.method(path, handler)
Cette MÉTHODE peut être appliquée à l’un des verbes HTTP – get, set, put, delete. Une méthode alternative existe également, qui s’exécute indépendamment du type de requête.
Path est la route à laquelle la requête s’exécutera.
Handler est une fonction de rappel qui s’exécute lorsqu’un type de requête correspondant est trouvé sur la route concernée. Par exemple,
var express = require('express');var app = express();app.get('/hello', function(req, res){ res.send("Hello World!");});app.listen(3000);
Si nous exécutons notre application et allons sur localhost:3000/hello, le serveur reçoit une requête get sur la route « /hello », notre application Express exécute la fonction callback attachée à cette route et envoie « Hello World ! » comme réponse.
Nous pouvons également avoir plusieurs méthodes différentes sur la même route. Par exemple,
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);
Pour tester cette requête, ouvrez votre terminal et utilisez cURL pour exécuter la requête suivante –
curl -X POST "http://localhost:3000/hello"
Une méthode spéciale, all, est fournie par Express pour gérer tous les types de méthodes http à une route particulière en utilisant la même fonction. Pour utiliser cette méthode, essayez ce qui suit.
app.all('/test', function(req, res){ res.send("HTTP method doesn't have any effect on this route!");});
Cette méthode est généralement utilisée pour définir des intergiciels, dont nous parlerons dans le chapitre sur les intergiciels.
Routes
Définir des routes comme ci-dessus est très fastidieux à maintenir. Pour séparer les routes de notre fichier principal index.js, nous allons utiliser Express.Router. Créez un nouveau fichier appelé things.js et tapez ce qui suit dedans.
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;
Maintenant pour utiliser ce routeur dans notre index.js, tapez ce qui suit avant l’appel de fonction app.listen.
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);
L’appel de fonction app.use sur la route ‘/things’ attache le routeur things avec cette route. Maintenant, toutes les demandes que notre application reçoit au niveau de ‘/things’, seront traitées par notre routeur things.js. La route ‘/’ dans things.js est en fait un sous-route de ‘/things’. Visitez localhost:3000/things/ et vous verrez la sortie suivante.
Les routeurs sont très utiles pour séparer les préoccupations et garder les portions pertinentes de notre code ensemble. Ils aident à construire un code facile à maintenir. Vous devriez définir vos routes relatives à une entité dans un seul fichier et l’inclure en utilisant la méthode ci-dessus dans votre fichier index.js.
.