РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnuSpSvSP 43 of 90 menu
◀ ▶

Серверный плагин в Nuxt

Клиентские плагины в app/plugins запускаются при создании приложения в браузере и на сервере рендера. Другая точка входа - server/plugins: здесь код привязан к Nitro, серверному движку Nuxt, и отрабатывает при старте сервера один раз, а не при каждом переходе между страницами Vue.

Давайте разберём, зачем это нужно. Плагин может подписаться на события Nitro и дополнять объект event.context для каждого входящего HTTP-запроса. Обработчики в server/routes и server/api читают те же поля контекста, что подготовил плагин.

Минимальный плагин и маршрут, который проверяет флаг:

  • /server/
    • /plugins/
      • ready.js
    • /routes/
      • check.js

Код плагина с хуком request:

export default defineNitroPlugin((nitroApp) => { nitroApp.hooks.hook('request', (event) => { event.context.started = true; }); });

Маршрут прочитает event.context.started и вернёт текст. После перезапуска npm run dev GET на /check даст server ok. Не путайте server/plugins с app/plugins:

export default defineEventHandler((event) => { if (event.context.started) { return 'server ok'; } return 'server wait'; });

Сделайте серверный плагин, который записывает строку ready в поле mark объекта event.context при каждом запросе.

Сделайте серверный маршрут, который возвращает значение event.context.mark в теле ответа.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить