Введение

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