Объект запроса¶
Объект запроса передается в качестве первого аргумента функции обработчику маршрута и общепринято именуется req, но вы можете использовать любое название.
app.get('/', (req, res) => {
res.render('index')
})
Объект запроса является одним из базовых объектов Node.js и расширяет свой функционал за счёт фреймворка Express. Он содержит исчерпывающую информацию в самом запросе и его инициаторе.
Свойства объекта запроса Node.js:
query
- объект, содержащий все GET-параметры;
// Запрос: /api/books?page=3&limit=15
{
query: {
page: 3,
limit: 15
},
}
params
- параметры маршрутизации в виде объекта;
// Маршрут: /api/books/:page/:limit
// Запрос: /api/books/3/15
{
params: {
page: 3,
limit: 15
},
}
body
- объект, который хранит данные, передаваемые POST или PUT запросом;
cookies
- значения cookies-файлов;
headers
- объект со всеми HTTP-заголовками запроса;
{
headers: {
host: '127.0.0.1:7000',
connection: 'keep-alive',
'cache-control': 'max-age=0',
},
}
url
- содержит маршрута с GET-параметрами, по которому определяется конечный обработчик;
const express = require("express"),
router = express.Router(),
router.get('/books', (req, res) => {
/*
Запрос: /api/books?page=3&limit=15
Результат: /books?page=3&limit=15
*/
console.log(req.url);
});
app.use('/api', router)
route
- объект маршрута Node js, экземпляр класса Route, который обрабатывает запрос (обычно используется для отладки);
path
- URL конечного маршрута, не содержит данные протокола, хоста, порта и GET-параметры;
const express = require("express"),
router = express.Router(),
router.get('/books', (req, res) => {
/*
Запрос: /api/books?page=3&limit=15
Результат: /books
*/
console.log(req.path);
});
app.use('/api', router);
ip
- IP-адрес инициатора запроса (обычно клиента);
hostname
- хост инициатора запроса;
{
hostname: '127.0.0.1',
}
protocol
- протокол, с использованием которого был отправлен запрос (http
или https
);
{
protocol: 'http',
}
secure
- булевое значение, true
, если запрос был отправлен по протоколу https
;
{
secure: false,
}
xhr
- булевое значение, true
, если запрос был отправлен вызовом AJAX.