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.