Vercel добавил поддержку Node.js в Middleware: что изменится для разработчиков

Теперь разработчики могут использовать привычные Node.js API прямо в Middleware на Vercel — это стало возможным благодаря долгожданному обновлению, которое снимает ограничения Edge Runtime. Ранее Middleware работал только в окружении Edge, что не позволяло задействовать полную экосистему Node.js, вк

Vercel добавил поддержку Node.js в Middleware: что изменится для разработчиков

Теперь разработчики могут использовать привычные Node.js API прямо в Middleware на Vercel — это стало возможным благодаря долгожданному обновлению, которое снимает ограничения Edge Runtime. Ранее Middleware работал только в окружении Edge, что не позволяло задействовать полную экосистему Node.js, включая работу с файловой системой и базами данных. Нововведение доступно в экспериментальном режиме в Next.js 15.2 и обещает упростить создание сложной серверной логики на границе сети.

Поддержка Node.js в Middleware: детали релиза

Обновление доступно в экспериментальном режиме, начиная с Next.js 15.2. Для использования необходимо установить канальную версию Next.js (next@canary) и включить флаг nodejs в конфигурации. Также нужно явно указать runtime в самом файле Middleware. Vercel подчёркивает, что Middleware по-прежнему развёртывается глобально на их платформе, независимо от выбранного runtime. Это означает, что логика Middleware выполняется на периферии, обеспечивая низкую задержку, но теперь с доступом к Node.js API.

Как включить Node.js в Middleware?

Чтобы использовать новую возможность, выполните несколько простых шагов. Сначала обновите Next.js до канальной версии командой npm install next@canary. Затем в файле конфигурации next.config.js добавьте экспериментальный флаг experimental.nodejs: true. После этого в файле middleware.ts или middleware.js укажите runtime: 'nodejs'. Пример кода: export const config = { runtime: 'nodejs' };. После этого Middleware будет выполняться в среде Node.js, и вы сможете использовать любые Node.js API, включая fs, crypto, а также подключать npm-пакеты, требующие нативной сборки.

Предыстория и контекст

Vercel долгое время продвигал Edge Runtime как основной способ выполнения Middleware, поскольку он обеспечивает минимальное время запуска и глобальное развёртывание. Однако многие разработчики сталкивались с ограничениями: отсутствие полной поддержки Node.js API, ограниченный набор модулей и сложности с интеграцией существующих библиотек. С ростом популярности Next.js и увеличением числа проектов, требующих сложной серверной логики, запрос на поддержку Node.js в Middleware стал одним из самых частых в сообществе. Решение Vercel позволяет объединить преимущества глобального развёртывания с гибкостью Node.js.

Чем Node.js Middleware отличается от Edge Runtime?

Edge Runtime основан на V8 Isolates и предлагает быстрый запуск и малое потребление памяти, но с ограниченным набором API. Node.js Runtime, напротив, предоставляет полную совместимость с экосистемой Node.js, но может иметь более высокую задержку при холодном старте. Vercel отмечает, что выбор между Edge и Node.js зависит от конкретной задачи. Для простых операций, таких как редиректы или чтение cookies, Edge остаётся оптимальным. Для сложной логики с доступом к базам данных или сторонним API лучше подходит Node.js. Важно, что Middleware с Node.js по-прежнему развёртывается глобально, но выполняется в регионе, ближайшем к пользователю, на выделенных Node.js-серверах. Это компромисс между производительностью и функциональностью.

Кого затронет и как

Обновление в первую очередь полезно разработчикам, использующим Next.js и Vercel для построения сложных веб-приложений. Особенно актуально для проектов, которым требуется аутентификация через сторонние сервисы (OAuth, SAML) с использованием Node.js SDK, персонализация контента на основе данных из внешних API или баз данных, гео-редиректы и локализация с использованием геолокационных данных, а также интеграция с платёжными системами, требующими Node.js. Для разработчиков из России и СНГ, которые используют Vercel, это упрощает создание проектов, где необходима работа с российскими API или базами данных, требующими Node.js.

Что будет дальше

На данный момент поддержка Node.js в Middleware находится в экспериментальной стадии. Vercel планирует собрать обратную связь от сообщества и стабилизировать функционал в ближайших версиях Next.js. Ожидается, что после выхода стабильного релиза Node.js Middleware станет основным способом для серверной логики на границе сети. Также возможно появление дополнительных настроек для управления производительностью и региональным развёртыванием.

Итог

Поддержка Node.js в Middleware от Vercel — значительный шаг вперёд для разработчиков Next.js. Он устраняет главное ограничение Edge Runtime и открывает путь к более сложным сценариям использования. Следите за обновлениями Next.js, чтобы первыми воспользоваться стабильной версией.