Pubblicità

I framework web forniscono risorse come pagine HTML, script, immagini, ecc. a diversi percorsi.

La seguente funzione è usata per definire i percorsi in un’applicazione Express –

app.method(path, handler)

Questo METODO può essere applicato a uno qualsiasi dei verbi HTTP – get, set, put, delete. Esiste anche un metodo alternativo, che viene eseguito indipendentemente dal tipo di richiesta.

Path è il percorso in cui la richiesta verrà eseguita.

Handler è una funzione di callback che viene eseguita quando viene trovato un tipo di richiesta corrispondente sul percorso in questione. Per esempio,

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

Se eseguiamo la nostra applicazione e andiamo su localhost:3000/hello, il server riceve una richiesta get sulla route “/hello”, la nostra app Express esegue la funzione di callback collegata a questa route e invia “Hello World!” come risposta.

Hello

Possiamo anche avere più metodi diversi sulla stessa route. Per esempio,

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);

Per testare questa richiesta, apri il tuo terminale e usa cURL per eseguire la seguente richiesta –

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

Richiesta Curl

Un metodo speciale, all, è fornito da Express per gestire tutti i tipi di metodi http in una particolare rotta utilizzando la stessa funzione. Per usare questo metodo, provare quanto segue.

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

Questo metodo è generalmente usato per definire il middleware, di cui parleremo nel capitolo sul middleware.

Routers

Definire le rotte come sopra è molto noioso da mantenere. Per separare le rotte dal nostro file index.js principale, useremo Express.Router. Create un nuovo file chiamato things.js e scriveteci quanto segue.

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;

Ora per usare questo router nel nostro index.js, scrivete quanto segue prima della chiamata alla funzione 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);

La chiamata alla funzione app.use sulla rotta ‘/things’ collega il router things a questa rotta. Ora qualsiasi richiesta la nostra app riceva alla rotta ‘/things’, sarà gestita dal nostro router things.js. La rotta ‘/’ in things.js è in realtà una sotto rotta di ‘/things’. Visitate localhost:3000/things/ e vedrete il seguente output.

Router Things

I router sono molto utili per separare le preoccupazioni e tenere insieme porzioni rilevanti del nostro codice. Aiutano a costruire codice mantenibile. Dovreste definire le vostre rotte relative a un’entità in un unico file e includerlo usando il metodo sopra descritto nel vostro file index.js.

Pubblicità

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *