Добрый день, сегодня мы поговорим о промежуточном программном обеспечении. Что такое промежуточное программное обеспечение, спросите вы? Это функция или цепочка функций, которые мы передаем нашему приложению на разных этапах для достижения желаемых и часто повторяющихся целей, особенно с запросами. Я покажу примеры из моего последнего проекта разработки, которые подчеркивают их использование и реализацию.

Смотрим маршрут:

Промежуточное ПО обычно используется для управления сессиями, наш «authorizeUser» делает именно это. Если в сессиях не передается статус «loggedIn» — остальную часть маршрута пропускаем полностью и перенаправляем на экран входа:

«authorizeUser» не имеет никакого эффекта, если пользователь действительно вошел в систему, и мы получаем часть промежуточного программного обеспечения «next()» «getFriendsAndFriendRequests»:

Здесь показано, как мы запрашиваем нашу базу данных пользователей, которые совместно используют определенные внешние ключи из наших моделей Friends и FriendRequest (link_id/friend_id, link_id_req/friend_id_req). Эта система моделей для друзей и запросов на добавление в друзья была продумана и создана моим другим товарищем по команде Мэйсоном Дэвисом. Приветствия обоим из их работы здесь.

Обратите внимание, что мы делаем запрос в нашу собственную базу данных, используя данные сеанса в строке 43: «User.findByPk(req.session.user, {…» Вот почему промежуточное ПО «getFriendsandFriendRequests» появляется ПОСЛЕ предыдущего, которое аутентифицирует сеанс пользователя. Если у пользователя не было активной сессии и, следовательно, не было данных сессии для анализа — наше приложение выдавало бы ошибку.

Затем мы собираем данные (друзья, запросы на добавление в друзья и отправленные запросы на добавление в друзья), относящиеся к вошедшему в систему пользователю, и передаем их в строках 71, 77 и 81 после того, как мы удаляем последовательность данных с помощью «.get({Plain: True}). Данные, адаптированные для пользователя, готовы к чертовщине!

Для этого приложения мы использовали рули, поэтому передача данных из нашей промежуточной функции в генерацию рулей происходила следующим образом:

Мы передаем данные на нашу страницу руля под названием «поиск» в строках, озаглавленных выше. В частности, информация о друзьях хранится в партиале, поэтому вместо того, чтобы повторно отображать эти данные на нашем сайте, все, что нам нужно сделать, это вызвать эту промежуточную функцию во всех маршрутах, которые относятся к данным сеанса (а на самом деле это большинство маршрутов).

Это может звучать как много повторений — но это не так! Это всего лишь небольшое количество повторений с очень небольшим количеством нажатий клавиш, обеспечивающих огромную ценность. В этом прелесть промежуточного программного обеспечения — нам не нужно постоянно переписывать один и тот же код. Данные, которые мы получаем от нашего промежуточного программного обеспечения, в итоге выглядят так:

Если вы хотите посетить наш сайт и насладиться всеми функциями, которые мы можем предложить, — вперед! https://mass-matchup.herokuapp.com/ - если у вас нет активной учетной записи Steam или вы не хотите отключать свой профиль от приватного, войдите в систему, используя david44, пароль: не пароль, чтобы изучить.

Если вам интересно, что такое промежуточное программное обеспечение и как его использовать, я надеюсь, что здесь вы пролили некоторый свет на эту тему. Если у вас есть какие-либо вопросы, не стесняйтесь оставлять комментарии!

Спасибо