Params Parser
@lottojs/params-parser
è uno dei nostri built-in middlewares che ti consente di analizzare i parametri di query e percorso provenienti dalle richieste http.
Parametri supportati
- Path Parameters
- Query Parameters
Path Parameters
I parametri path, se presenti sulla rotta gestita, saranno sempre disponibili nell'oggetto req.params
e potrai recuperarli in 2 modi:
- Oggetto
req.params
.
lotto.get('/user/:id', ({ req, res}) => {
const { id } = req.params;
...
})
lotto.get('/user/:id', ({ req, res}) => {
const { id } = req.params;
...
})
req.param
helper.
lotto.get('/user/:id', ({ req, res}) => {
const userId = req.param('id');
...
})
lotto.get('/user/:id', ({ req, res}) => {
const userId = req.param('id');
...
})
Query Parameters
I parametri di query, se presenti sulla rotta gestita, saranno sempre disponibili nell'oggetto req.query
e potrai recuperarli in 2 modi:
- Oggetto
req.query
.
lotto.get('/user', ({ req, res}) => {
const { gclid } = req.query;
...
})
lotto.get('/user', ({ req, res}) => {
const { gclid } = req.query;
...
})
req.get
helper.
lotto.get('/user/', ({ req, res}) => {
const gclid = req.get('gclid');
...
})
lotto.get('/user/', ({ req, res}) => {
const gclid = req.get('gclid');
...
})
Utilizzo autonomo
È anche possibile utilizzarlo in modo autonomo su altri progetti che non utilizzano Lotto
.
Esportiamo una funzione chiamata paramsParser
e aspettiamo un parametro contenente l'URL che viene chiamato in quel momento e restituisce una funzione in cui puoi passare l'oggetto req
proveniente dal tuo server http e anche una funzione next
affinché il tuo progetto possa seguire le chiamate successive.prossime.
import { createServer } from 'node:http';
import { paramsParser } from '@lottojs/params-parser';
createServer(
async (req: IncomingMessage, res: ServerResponse) => {
...
paramsParser(req.url)(req, next())
...
},
)
import { createServer } from 'node:http';
import { paramsParser } from '@lottojs/params-parser';
createServer(
async (req: IncomingMessage, res: ServerResponse) => {
...
paramsParser(req.url)(req, next())
...
},
)
Github
Se sei interessato a come funziona in modo più approfondito, dai un'occhiata al codice su Github.