Если вы когда-нибудь задумывались, как интегрировать 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 г.