Введение
При разработке веб-приложений часто полезно собирать содержимое и заголовки ответа 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