
Введение
При разработке веб-приложений часто полезно собирать содержимое и заголовки ответа HTTP для различных целей, таких как отладка, ведение журнала или кэширование. Сегодня мы познакомимся с библиотекой on-http-end, которая позволяет легко получать эту информацию по завершении HTTP-запроса.
Эта библиотека вдохновлена проектом Apicache (https://github.com/kwhitley/apicache/blob/master/src/apicache.js).
Монтаж
Для начала вам необходимо установить пакет on-http-end с помощью npm:
npm i on-http-end
Применение
Вот базовый пример использования библиотеки on-http-end с модулем http в Node.js:
const onEnd = require('on-http-end');
const http = require('http');
const server = http.createServer((req, res) => {
onEnd(res, (payload) => {
console.log(payload);
});
res.setHeader('my-header', 'value');
res.end('Hello World!', 'utf-8');
});
server.listen(3000);
Выход:
{
status: 200,
headers: [Object: null prototype] { 'my-header': 'value' },
data: 'Hello World!',
encoding: 'utf-8'
}
Функция обратного вызова получает один аргумент, payload, который представляет собой объект, содержащий статус ответа HTTP, заголовки, данные и кодировку. В этом примере мы просто выводим объект payload на консоль.
Когда сервер получает запрос, он устанавливает собственный заголовок («my-header») и заканчивает ответ сообщением «Hello World!» в кодировке UTF-8.
По завершении запроса выполняется обратный вызов onEnd(), и захваченное содержимое ответа HTTP и заголовки регистрируются в консоли, как показано в выходных данных.
Заключение
Библиотека on-http-end предоставляет простой и эффективный способ захвата содержимого и заголовков ответов HTTP после завершения запроса, что делает ее ценным инструментом для отладки, ведения журнала или кэширования при разработке веб-приложений.
Подробнее об использовании on-http-end