Node.js: gestione dei path di routing in ExpressJS

Node.js: gestione dei path di routing in ExpressJS

Il routing di ExpressJS ha una gestione specifica dei path.

I path di routing, in combinazione con un metodo di richiesta, definiscono gli endpoint a cui possono essere rivolte richieste. I path di routing possono essere stringhe, modelli di stringa o espressioni regolari.

Express utilizza path-to-regexp per la corrispondenza dei path di routing; consultare la documentazione relativa a path-to-regexp per tutte le possibilità di definizione di path di routing. Express routing Tester è uno strumento utile per il test delle routing Express di base, anche se non supporta la corrispondenza di modelli.

Le stringhe di query non fanno parte del path di routing.

Ecco alcuni esempi di path di routing basati su stringhe.

Questo path di routing corrisponderà a richieste nella routing root, /.


app.get('/', (req, res) => {
  res.send('root');
});

Questo path di routing corrisponderà a richieste in /about.


app.get('/about', (req, res) => {
  res.send('about');
});

Questo path di routing corrisponderà a richieste in /random.text.


app.get('/random.text', (req, res) => {
  res.send('random.text');
});

Ecco alcuni esempi di path di routing basati su modelli di stringa.

Questo path di routing corrisponderà a acd e abcd.


app.get('/ab?cd', (req, res) => {
  res.send('ab?cd');
});

Questo path di routing corrisponderà a abcd, abbcd, abbbcd e così via.


app.get('/ab+cd', (req, res) => {
  res.send('ab+cd');
});

Questo path di routing corrisponderà a abcd, abxcd, abRABDOMcd, ab123cd e così via.


app.get('/ab*cd', (req, res) => {
  res.send('ab*cd');
});

Questo path di routing corrisponderà a /abe e /abcde.


app.get('/ab(cd)?e', (req, res) => {
 res.send('ab(cd)?e');
});

I caratteri ?, +, * e () sono sottoinsiemi delle rispettive controparti di espressioni regolari. Trattino (-) e punto (.) vengono interpretati letteralmente da path basati su stringhe.

Esempi di path di routing basati su espressioni regolari:

Questo path di routing corrisponderà a qualsiasi elemento con “a” nel nome routing.


app.get(/a/, (req, res) => {
  res.send('/a/');
});

Questo path di routing corrisponderà a butterfly e dragonfly, ma non a butterflyman, dragonfly man e così via.


app.get(/.*fly$/, (req, res) => {
  res.send('/.*fly$/');
});

Torna su