Если вы когда-нибудь задумывались, как интегрировать Fastify с Next.js и позволить последнему стать частью жизненного цикла Fastify, это краткое руководство для вас.

Как вы, возможно, знаете, Next.js имеет ограниченный общедоступный API, который не предоставляет ничего, что возвращало бы ответ в виде строки или объекта. Более того, Next.js записывает ответ прямо в поток, который отправляется клиенту.

Что, если мы хотим поддерживать сеанс и прикреплять или отсоединять файлы cookie, которые обрабатываются Fastify при обслуживании контента Next.js?

Node.Js Proxy на помощь!

Давайте напишем простой плагин, который будет обертывать http.IncomingMessage и http.ServerResponse и перенаправлять необходимые вызовы в Fastify.

Во-первых, давайте дополним экземпляр Fastify, а также интерфейсы http.IncomingMessage и http.OutgoingMessage методами и свойствами, которые мы хотим сделать доступными.

Определить параметры плагина

Реализовать логику плагина

Кроме того, давайте проксируем необходимые вызовы на http.OutgoingMessage.

Наконец, экспортируйте плагин

Отныне, после регистрации плагина, вы можете обслуживать контент Next.js с помощью Fastify и пользоваться всеми преимуществами обоих фреймворков.

Не забудьте отключить сжатие в next.config.js

Простое использование плагина create выглядит следующим образом

Если у вас есть идеи, как улучшить плагин и внести свой вклад в его развитие, посетите его репозиторий GitHub и попробуйте его с npm.

Первоначально опубликовано на https://dev.to 6 июня 2021 г.