Nuxt 2 × CMS Demo
Те же 4 подхода — но на Nuxt 2.17 с serverMiddleware вместо Nitro
⚡ Nuxt 2 vs Nuxt 4 — ключевые отличия
Серверный слой serverMiddleware (Connect/Express) Nitro (встроен, TypeScript)
Конфиг privateRuntimeConfig runtimeConfig (server-only)
Fetch axios / node-fetch (вручную) встроенный useFetch / $fetch
Роутинг API server-middleware/*.js (ручной req/res) server/api/*.ts (автоимпорт)
Данные на странице asyncData() { return fetch(...) } await useFetch(...)
Страница 1
Strapi → Direct
asyncData запрашивает Strapi напрямую.
URL виден в клиенте, токен не нужен (публичный API).
asyncData Client fetch Strapi REST
Страница 2
Strapi → Middleware
asyncData → /api/strapi/articles →
serverMiddleware → Strapi.
URL Strapi скрыт на сервере.
asyncData serverMiddleware node-fetch
Страница 3
Directus → Middleware
asyncData → /api/directus/articles →
serverMiddleware → Directus.
Admin-токен скрыт на сервере.
asyncData serverMiddleware Bearer token hidden
Страница 4
Directus → Direct
asyncData запрашивает Directus напрямую
со статическим viewer-токеном из publicRuntimeConfig.
asyncData publicRuntimeConfig Directus REST