EXPRESS, параметры запроса

Разберем подробнее объект Request, что он содержит и как с ним работать.
Вот основные свойства, которые вы, вероятно, будете использовать:
| Свойство | Описание |
|---|---|
| .app | содержит ссылку на объект приложения Express |
| .baseUrl | базовый путь, по которому приложение отвечает |
| .body | содержит данные, представленные в теле запроса (должны быть проанализированы и заполнены вручную, прежде чем вы сможете получить к ним доступ) |
| .cookies | содержит данные cookie, отправленные по запросу (требуется промежуточная программная обработка cookie-parser) |
| .hostname | название сервера |
| .ip | IP сервера |
| .method | используемый HTTP метод |
| .params | параметры запроса в роуте |
| .path | URL путь |
| .protocol | протокол запроса |
| .query | объект, содержащий все параметры запроса |
| .secure | true если запрос безопасен (использует HTTPS) |
| .signedCookies | содержит данные cookie, отправленные запросом (требуется промежуточная программная обработка cookie-parser) |
| .xhr | true если запрос отправлен с помощью XMLHttpRequest |
Как получить GET параметры запроса с использованием express
Пример строки запроса:
?name=flavio&age=35
Как нам получить эти значения из строки запроса в Express?
Express делает это очень просто, заполняя объект Request.query для нас:
const express = require('express')
const app = express()
app.get('/', (req, res) => {
console.log(req.query)
})
app.listen(8080)
Этот объект заполнен значениями для каждого параметра запроса. Если в запросе не было параметров, данный объект будет пустым.
Мы можем перебрать этот объект использовав цикл for… in:
for (const key in req.query) {
console.log(key, req.query[key])
}
Пример выше распечатает в консоли ключи и значения содержащиеся в объекте.
Вы также можете получить доступ к отдельным свойствам:
req.query.name //flavio req.query.age //35
Как получить post query string параметры с использованием express
Параметры запроса POST отправляются клиентами HTTP, например, с помощью форм или при выполнении данных отправки запроса POST.
Как вы можете получить доступ к этим данным?
Если данные были отправлены в формате JSON с использованием Content-Type: application/json, вы можете использовать парсер express.json():
const express = require('express')
const app = express()
app.use(express.json())
Если данные были отправлены как JSON с использованием Content-Type: application / x-www-form-urlencoded, вы будете использовать промежуточное программное обеспечение express.urlencoded ():
const express = require('express')
const app = express()
app.use(express.urlencoded())
В обоих случаях вы можете получить доступ к данным, ссылаясь на них из Request.body:
app.post('/form', (req, res) => {
const name = req.body.name
})
В старых версиях Express для обработки данных POST требовалось использовать модуль body-parser. Это больше не относится к Express 4.16 (выпущенной в сентябре 2017 года) и более поздним версиям.