Sveltejs Academy · Урок

Хук handle(): промежуточное ПО для запросов

Перехватывайте каждый входящий запрос, изменяйте event.locals и вызывайте resolve()

Урок 1 из 413 шагов

«Хук handle(): промежуточное ПО для запросов» — бесплатный урок Sveltejs Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Sveltejs Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Sveltejs Academy содержит 4 уроков всего.

Серверные перехватчики

Перехватчики находятся в src/hooks.server.js. Они выполняются при каждом запросе к серверу.

Экспорт handle

Экспортируйте асинхронную функцию с именем handle, которая получает { event, resolve }.

export async function handle({ event, resolve }) {
  // do stuff before
  const res = await resolve(event);
  // do stuff after
  return res;
}

Изменение события

Задайте event.locals, чтобы предоставить данные функциям загрузки и конечным точкам.

event.locals.user = await getUser(event.cookies.get("sid"));

Проверка или замена ответа

После вызова resolve(event) можно проверить или изменить ответ.

Журналирование запросов

Перехватчик handle — отличное место для добавления журналирования запросов или измерения времени выполнения.

Слой аутентификации

Прочитайте файлы cookie, получите данные пользователя и добавьте их в locals. После этого страницы и API смогут доверять locals.

Объединение перехватчиков

Несколько задач можно оформить в вспомогательные функции и объединить с помощью sequence().

Заголовки CORS

Добавляйте заголовки CORS при отправке ответа для API, доступных из других источников.

Производительность

Перехватчики выполняются при каждом запросе. Они должны быть быстрыми и безопасными для асинхронного выполнения.

Пропуск статических ресурсов

SvelteKit пропускает статические файлы через перехватчики. Ваш перехватчик выполняется только для маршрутов приложения.

TypeScript

Для типизированных реализаций используйте тип Handle из @sveltejs/kit.

Быстрая проверка

Где находятся серверные перехватчики?

Итоги

Перехватчик handle в hooks.server.js перехватывает каждый запрос. Заполняйте locals для последующего кода.

Можно начать бесплатно

Изучай HTML с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
41
Уроки
163

Часто задаваемые вопросы

Урок «Хук handle(): промежуточное ПО для запросов» бесплатный?

Да — полный текст урока «Хук handle(): промежуточное ПО для запросов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Sveltejs Academy, подпишись на CoddyKit PRO. Курс Sveltejs Academy содержит 4 уроков всего.

Чему я научусь в уроке «Хук handle(): промежуточное ПО для запросов»?

Перехватывайте каждый входящий запрос, изменяйте event.locals и вызывайте resolve() Ты практикуешь Sveltejs Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Sveltejs Academy?

Предыдущий опыт не требуется. Sveltejs Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Хук handle(): промежуточное ПО для запросов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Sveltejs Academy?

Да. Каждый урок Sveltejs Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Хук handle(): промежуточное ПО для запросов
  2. handleError для журналирования ошибок сервера
  3. Хук init()
  4. Sequence() для объединения хуков
← Назад к Sveltejs Academy