Request
L'oggetto req
conterrà tutti i dati e anche gli helper che potrai utilizzare dalla richiesta successiva.
PS: non è necessario chiamare un middleware per fare il parsing dei path parametri o i parametri di query poiché lo facciamo già internamente con il nostro middleware @lottojs/params-parser.
req
: Request
interface Request extends IncomingMessage {
/**
* Corpo della Richiesta.
*/
body: any
/**
* Recupera file specifico in base al nome del campo.
*
* Esempi:
*
* res.file('document');
* @param field Nome del campo
* @returns MultipartContent | undefined
*/
file: (field: string) => MultipartContent | undefined
/**
* Archivi della richiesta.
*/
files: MultipartContent[] | null
/**
* Recupera parametri di query specifici.
*
* Esempo:
*
* res.get('gclid');
* @param query Parametro di query
* @returns Query
*/
get: (query: string) => Query
/**
* Recupera il parametro path specifico.
*
* Esempi:
*
* res.param('id');
* @param param Parametro path
* @returns T | undefined
*/
param: <T = string>(param: string) => T | undefined
/**
* Parametri path della richiesta e.g.: /:id, /user/:id/:group.
*/
params: Params
/**
* Parametri di query della richiesta e.g.: ...?gclid=123
*/
query: ParsedQuery
}
interface Request extends IncomingMessage {
/**
* Corpo della Richiesta.
*/
body: any
/**
* Recupera file specifico in base al nome del campo.
*
* Esempi:
*
* res.file('document');
* @param field Nome del campo
* @returns MultipartContent | undefined
*/
file: (field: string) => MultipartContent | undefined
/**
* Archivi della richiesta.
*/
files: MultipartContent[] | null
/**
* Recupera parametri di query specifici.
*
* Esempo:
*
* res.get('gclid');
* @param query Parametro di query
* @returns Query
*/
get: (query: string) => Query
/**
* Recupera il parametro path specifico.
*
* Esempi:
*
* res.param('id');
* @param param Parametro path
* @returns T | undefined
*/
param: <T = string>(param: string) => T | undefined
/**
* Parametri path della richiesta e.g.: /:id, /user/:id/:group.
*/
params: Params
/**
* Parametri di query della richiesta e.g.: ...?gclid=123
*/
query: ParsedQuery
}
PS: l'interfaccia IncomingMessage fa parte della node:http api
body()
È l'oggetto da cui è possibile recuperare i dati passati nel corpo della richiesta HTTP sui metodi POST
, PUT
e PATCH
.
lotto.post('/users', ({ req }) => {
const body = req.body
...
})
lotto.post('/users', ({ req }) => {
const body = req.body
...
})
file()
La funzione file è un helper che puoi utilizzare passando un nome di campo per recuperare un oggetto file quando lo carichi utilizzando il Content-Type multipart/form-data
.
lotto.post('/users', ({ req }) => {
const file = req.file('doc')
...
})
lotto.post('/users', ({ req }) => {
const file = req.file('doc')
...
})
Questa funzione restituisce undefined
o un oggetto MultipartContent
contenente le seguenti chiavi:
type MultipartContent = {
/**
* Nome del campo
*/
name: string
/**
* Nome del archivio.
*/
fileName: string
/**
* Tipo di contenuto e e.g.: image/svg+xml.
*/
contentType: string
/**
* Contenuto come un Buffer
*/
content: Buffer
}
type MultipartContent = {
/**
* Nome del campo
*/
name: string
/**
* Nome del archivio.
*/
fileName: string
/**
* Tipo di contenuto e e.g.: image/svg+xml.
*/
contentType: string
/**
* Contenuto come un Buffer
*/
content: Buffer
}
files
Puoi utilizzare questo oggetto per recuperare uno o più oggetti file durante il caricamento utilizzando il Content-Type multipart/form-data
.
lotto.post('/users', ({ req }) => {
const { photo } = req.files
...
})
lotto.post('/users', ({ req }) => {
const { photo } = req.files
...
})
Come il metodo file, questo oggetto può essere undefined
o restituisce anche un array di oggetti MultipartContent
.
get()
È un helper per recuperare i parametri di query dall'URL semplicemente passando il nome del parametro come parametro di funzione.
lotto.get('/me', ({ req }) => {
const gclid = req.get('gclid')
...
})
lotto.get('/me', ({ req }) => {
const gclid = req.get('gclid')
...
})
query
Oggetto che conterrà tutti i parametri di query passati.
lotto.get('/me', ({ req }) => {
const { gclid } = req.query
...
})
lotto.get('/me', ({ req }) => {
const { gclid } = req.query
...
})
param()
È un helper che semplicemente passando i path parametri come parametri di funzione è possibile recuperarli dalla richiesta.
lotto.get('/users/:userId', ({ req }) => {
const { userId } = req.param('userId')
...
})
lotto.get('/users/:userId', ({ req }) => {
const { userId } = req.param('userId')
...
})
params
Oggetto che conterrà tutti i path parametri passati.
lotto.get('/users/:userId', ({ req }) => {
const { userId } = req.params
...
})
lotto.get('/users/:userId', ({ req }) => {
const { userId } = req.params
...
})