Сервер
На базе Nitro
Сервер Nuxt — это Nitro. Изначально он создавался для Nuxt, сейчас входит в UnJS и может использоваться другими фреймворками или отдельно.
Nitro даёт Nuxt ряд возможностей:
- Полный контроль серверной части приложения
- Универсальное развёртывание у любого провайдера (часто без конфигурации)
- Гибридный рендеринг
Внутри Nitro использует h3 — минималистичный HTTP-фреймворк с высокой производительностью и переносимостью.
API и middleware
Серверную часть Nuxt (API и middleware) можно описывать единообразно:
export default defineEventHandler(async (event) => {
// ... Ваша логика
})
Возвращать можно text, json, html или даже stream.
Как и в остальном Nuxt, поддерживаются hot module replacement и автоимпорт.
Универсальное развёртывание
Nitro позволяет развернуть Nuxt где угодно — от bare metal до edge, с запуском за миллисекунды.
Доступно более 15 пресетов под разные облака и серверы, в том числе:
И под другие рантаймы:
Гибридный рендеринг
В Nitro есть механизм routeRules: для каждого маршрута можно задать правила рендеринга и не только.
export default defineNuxtConfig({
routeRules: {
// Генерируется при сборке для SEO
'/': { prerender: true },
// Кэш на 1 час
'/api/*': { cache: { maxAge: 60 * 60 } },
// Редирект вместо 404
'/old-page': {
redirect: { to: '/new-page', statusCode: 302 },
},
// ...
},
})
Часть правил (ssr, appMiddleware, noScripts) относится к Nuxt и меняет поведение при рендере страниц в HTML.
Некоторые правила (appMiddleware, redirect, prerender) влияют и на клиентское поведение.
Nitro используется и для серверного рендеринга, и для пререндеринга.