Request
O objeto req
conterá todos os dados e também helpers que você pode usar na sua requisição.
PS: Você não precisa chamar um middleware para parsear query ou path parameters, pois já fazemos isso internamente com nosso middleware @lottojs/params-parser.
req
: Request
interface Request extends IncomingMessage {
/**
* Corpo da requisição.
*/
body: any
/**
* Recupera arquivo específico por nome de campo.
*
* Exemplos:
*
* res.file('document');
* @param field nome do campo
* @returns MultipartContent | undefined
*/
file: (field: string) => MultipartContent | undefined
/**
* Objeto de arquivos.
*/
files: MultipartContent[] | null
/**
* Recupera query param específico.
*
* Exemplos:
*
* res.get('gclid');
* @param query query parameter
* @returns Query
*/
get: (query: string) => Query
/**
* Recupera path parameter específico.
*
* Exemplos:
*
* res.param('id');
* @param param path parameter
* @returns T | undefined
*/
param: <T = string>(param: string) => T | undefined
/**
* path parameters da requisição e.g.: /:id, /user/:id/:group.
*/
params: Params
/**
* query parameters da requisição e.g.: ...?gclid=123
*/
query: ParsedQuery
}
interface Request extends IncomingMessage {
/**
* Corpo da requisição.
*/
body: any
/**
* Recupera arquivo específico por nome de campo.
*
* Exemplos:
*
* res.file('document');
* @param field nome do campo
* @returns MultipartContent | undefined
*/
file: (field: string) => MultipartContent | undefined
/**
* Objeto de arquivos.
*/
files: MultipartContent[] | null
/**
* Recupera query param específico.
*
* Exemplos:
*
* res.get('gclid');
* @param query query parameter
* @returns Query
*/
get: (query: string) => Query
/**
* Recupera path parameter específico.
*
* Exemplos:
*
* res.param('id');
* @param param path parameter
* @returns T | undefined
*/
param: <T = string>(param: string) => T | undefined
/**
* path parameters da requisição e.g.: /:id, /user/:id/:group.
*/
params: Params
/**
* query parameters da requisição e.g.: ...?gclid=123
*/
query: ParsedQuery
}
PS: A interface IncomingMessage faz parte da node:http api
body()
É o objeto que você pode recuperar dados passados no corpo da solicitação HTTP nos métodos POST
, PUT
e PATCH
.
lotto.post('/users', ({ req }) => {
const body = req.body
...
})
lotto.post('/users', ({ req }) => {
const body = req.body
...
})
file()
A função file é um helper que você pode usar passando um nome de campo para recuperar um objeto de arquivo ao carregá-lo usando o Content-Type multipart/form-data
.
lotto.post('/users', ({ req }) => {
const file = req.file('doc')
...
})
lotto.post('/users', ({ req }) => {
const file = req.file('doc')
...
})
Esta função retorna undefined
ou um objeto MultipartContent
contendo as seguintes chaves:
type MultipartContent = {
/**
* Nome do campo.
*/
name: string
/**
* Nome do arquivo.
*/
fileName: string
/**
* Tipo de conteúdo e.g.: image/svg+xml.
*/
contentType: string
/**
* Buffer do conteúdo.
*/
content: Buffer
}
type MultipartContent = {
/**
* Nome do campo.
*/
name: string
/**
* Nome do arquivo.
*/
fileName: string
/**
* Tipo de conteúdo e.g.: image/svg+xml.
*/
contentType: string
/**
* Buffer do conteúdo.
*/
content: Buffer
}
files
Você pode usar este objeto para recuperar um ou mais objetos de arquivo ao carregá-lo usando o Content-Type multipart/form-data
.
lotto.post('/users', ({ req }) => {
const { photo } = req.files
...
})
lotto.post('/users', ({ req }) => {
const { photo } = req.files
...
})
Assim como o método file este objeto pode ser undefined
ou também retornar um array de objetos MultipartContent
.
get()
É um auxiliar para recuperar query parameters da URL apenas passando o nome do mesmo como parâmetro da função.
lotto.get('/me', ({ req }) => {
const gclid = req.get('gclid')
...
})
lotto.get('/me', ({ req }) => {
const gclid = req.get('gclid')
...
})
query
É o objeto que conterá todos os query parameters passados.
lotto.get('/me', ({ req }) => {
const { gclid } = req.query
...
})
lotto.get('/me', ({ req }) => {
const { gclid } = req.query
...
})
param()
É um helpers que apenas passando os path parameters como parâmetros da função você pode recuperá-los da requisição.
lotto.get('/users/:userId', ({ req }) => {
const { userId } = req.param('userId')
...
})
lotto.get('/users/:userId', ({ req }) => {
const { userId } = req.param('userId')
...
})
params
É o objeto que conterá todos os path parameters da requisição.
lotto.get('/users/:userId', ({ req }) => {
const { userId } = req.params
...
})
lotto.get('/users/:userId', ({ req }) => {
const { userId } = req.params
...
})