Params Parser
@lottojs/params-parser
é um de nossos built-in middlewares que permite analisar os query e path parameters provenientes de solicitações HTTP
Parâmetros Suportados
- Path Parameters
- Query Parameters
Path Parameters
Caso hajam path parameters na rota tratada, sempre estarão disponíveis no objeto req.params
e você pode recuperá-los de 2 maneiras:
- Objeto
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
Caso hajam query parameters na rota tratada, sempre estarão disponíveis no objeto req.query
e você pode recuperá-los de 2 maneiras:
- Objeto
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');
...
})
Uso Autônomo
Também é possível utilizá-lo de forma autônoma em outros projetos que não utilizem o Lotto
.
Ao exportar uma função chamada paramsParser
e espera um parâmetro contendo a url que está sendo chamada no momento e retorna uma função onde você pode passar o objeto req
vindo do seu servidor http e também uma função next
para seu projeto poder executar as próximas chamadas.
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 você estiver interessado em saber como funciona mais profundamente, dê uma olhada no código no Github.