Сервер
Работает на Nitro
Сервер Nuxt — Nitro. Изначально он был создан для Nuxt, но теперь является частью UnJS и открыт для других фреймворков — и даже может использоваться сам по себе.
Nitro даёт Nuxt такие возможности:
- полный контроль над серверной частью приложения;
- универсальное развёртывание у любого провайдера (часто без дополнительной настройки);
- гибридный рендеринг.
Внутри Nitro — h3, минимальный HTTP-фреймворк для высокой производительности и переносимости.
Серверные эндпоинты и посредники
Вы можете легко управлять серверной частью приложения Nuxt: от API-эндпоинтов до серверных посредников (каталог server/middleware/).
И эндпоинты, и посредники можно определить так:
export default defineEventHandler(async (event) => {
// ... Делайте здесь все, что хотите.
})
И вы можете напрямую вернуть text, json, html или даже stream.
По умолчанию Nitro поддерживает горячую замену модулей и автоматический импорт, как и другие части вашего приложения Nuxt.
Универсальное развертывание
Nitro позволяет развернуть приложение Nuxt где угодно — от железа в ЦОД до глобальных сетей узлов — со временем холодного старта в миллисекундах.
Существует более 15 предустановок для создания приложения Nuxt для различных облачных провайдеров и серверов, таких как:
Или для других сред выполнения:
Гибридный рендеринг
В Nitro доступны routeRules — правила, задающие, как отдаётся каждый маршрут приложения Nuxt (и не только).
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 используется для создания приложения для рендеринга на стороне сервера, а также для предварительного рендеринга.