DevGang
Авторизоваться

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 года) и более поздним версиям.

#NodeJS
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу