Экспресс, параметры запроса

Удобный справочник по всем свойствам объекта запроса и способам их использования.

Параметры запроса

Я упомянул, как объект Request хранит всю информацию о HTTP-запросе.

Вот основные свойства, которые вы, вероятно, будете использовать:

Свойство Описание
.приложение содержит ссылку на объект приложения Express
.baseUrl базовый путь, по которому приложение отвечает
.тело содержит данные, отправленные в теле запроса (должны быть проанализированы и заполнены вручную, прежде чем вы сможете получить к нему доступ)
.печенье содержит файлы cookie, отправленные по запросу (требуетсяcookie-parserпромежуточное ПО)
.hostname имя хоста, как определено вHTTP-заголовок хостаценить
.ip клиентский IP
.method используемый метод HTTP
.params параметры маршрута с именем
.дорожка путь URL
.protocol протокол запроса
.запрос объект, содержащий все строки запроса, используемые в запросе
.безопасный истина, если запрос защищен (использует HTTPS)
.signedCookies содержит подписанные файлы cookie, отправленные запросом (требуетсяcookie-parserпромежуточное ПО)
.xhr истина, если запрос являетсяXMLHttpRequest

Как получить параметры строки запроса GET с помощью Express

Строка запроса - это часть, которая идет после пути URL и начинается с вопросительного знака.?.

Пример:

?name=flavio

Можно добавить несколько параметров запроса с помощью&:

?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 с помощью Express

Параметры запроса POST отправляются HTTP-клиентами, например, с помощью форм или при выполнении запроса POST, отправляющего данные.

Как вы можете получить доступ к этим данным?

Если данные были отправлены какJSON, с помощьюContent-Type: application/json, вы будете использоватьexpress.json()промежуточное ПО:

const express = require('express')
const app = express()

app.use(express.json())

Если данные были отправлены с использованиемContent-Type: application/x-www-form-urlencoded, вам нужно будет использоватьexpress.urlencoded()промежуточное ПО:

const express = require('express')
const app = express()

app.use(express.urlencoded({ extended: true }))

В обоих случаях вы можете получить доступ к данным, обратившись к ним изRequest.body:

app.post('/form', (req, res) => {
  const name = req.body.name
})

Примечание: более старые версии Express требовали использованияbody-parserмодуль для обработки данных POST. В Express 4.16 (выпущенном в сентябре 2017 г.) и более поздних версиях этого больше не происходит.

Скачать мою бесплатнуюСправочник Express.js


Дополнительные экспресс-руководства: