ExpressJS - Creazione di URL

Ora possiamo definire percorsi, ma quelli sono statici o fissi. Per utilizzare i percorsi dinamici, DOVREBBE fornire diversi tipi di percorsi. L'utilizzo di percorsi dinamici ci consente di passare parametri e processi basati su di essi.

Ecco un esempio di percorso dinamico:

var express = require('express');
var app = express();

app.get('/:id', function(req, res){
   res.send('The id you specified is ' + req.params.id);
});
app.listen(3000);

Per testarlo vai a http://localhost:3000/123. Verrà visualizzata la seguente risposta.

Puoi sostituire "123" nell'URL con qualsiasi altra cosa e la modifica si rifletterà nella risposta. Un esempio più complesso di quanto sopra è:

var express = require('express');
var app = express();

app.get('/things/:name/:id', function(req, res) {
   res.send('id: ' + req.params.id + ' and name: ' + req.params.name);
});
app.listen(3000);

Per testare il codice sopra, vai a http://localhost:3000/things/tutorialspoint/12345.

Puoi usare il file req.paramsoggetto per accedere a tutti i parametri passati nell'url. Nota che i 2 precedenti sono percorsi diversi. Non si sovrapporranno mai. Anche se vuoi eseguire il codice quando ottieni'/things' quindi è necessario definirlo separatamente.

Percorsi con corrispondenza del modello

Puoi anche usare regexper limitare la corrispondenza dei parametri URL. Supponiamo che tu abbia bisogno del fileidessere un numero lungo 5 cifre. È possibile utilizzare la seguente definizione del percorso:

var express = require('express');
var app = express();

app.get('/things/:id([0-9]{5})', function(req, res){
   res.send('id: ' + req.params.id);
});

app.listen(3000);

Nota che questo lo farà only corrispondono alle richieste che hanno una lunghezza di 5 cifre id. Puoi usare espressioni regolari più complesse per abbinare / convalidare i tuoi percorsi. Se nessuno dei tuoi percorsi corrisponde alla richiesta, otterrai un file"Cannot GET <your-request-route>"messaggio come risposta. Questo messaggio deve essere sostituito da una pagina 404 non trovata utilizzando questo semplice percorso -

var express = require('express');
var app = express();

//Other routes here
app.get('*', function(req, res){
   res.send('Sorry, this is an invalid URL.');
});
app.listen(3000);

Important - Dovrebbe essere posizionato dopo tutti i tuoi percorsi, poiché Express corrisponde ai percorsi dall'inizio alla fine del file index.js file, inclusi i router esterni richiesti.

Ad esempio, se definiamo le stesse rotte di cui sopra, su richiesta con un URL valido, viene visualizzato il seguente output. -

Mentre per una richiesta URL errata, viene visualizzato il seguente output.