Учебный пример Express Middleware с нуля

Пример учебного пособия по промежуточному программному обеспечению Express с нуля является сегодня ведущей темой. Экспресс работает так же, как когда мы получаем запрос на сервере; он должен возвращать ответ веб-страницы, например HTML или PHP , или отправлять ответ JSON на API . Express — это очень легкий веб-фреймворк. Он поставляется с некоторыми функциями, такими как промежуточное ПО. Функция ПО промежуточного слоя — это функция, которая имеет доступ к объекту запроса ( req ), объекту ответа ( res ), и следующая функция промежуточного программного обеспечения в цикле запроса-ответа приложения. Следующая функция промежуточного программного обеспечения обычно обозначается переменной с именем next .

Промежуточное ПО Функция может выполнять следующие задачи.

  • Может выполнять любой код.
  • Может вносить изменения в объекты запроса и ответа.
  • Может завершить цикл запроса-ответа.
  • Может вызвать следующую функцию промежуточного программного обеспечения в стеке.

Если текущая функция промежуточного программного обеспечения не завершает цикл запрос-ответ, он должен вызвать next (), чтобы передать управление функции next middleware . В противном случае запрос останется зависшим, и вы застрянете на определенной веб-странице и будете просто загружаться, загружаться и так далее.

Учебное пособие по экспресс-промежуточному ПО

Если вы создаете веб-приложение Express на Node js , то вы уже использовали экспресс-промежуточное ПО. Я приведу вам пример.

//Для обслуживания статических файловapp.use (express.static ('public'  ));//Для синтаксического анализа входящего почтового запроса dataapp.use (bodyParser.urlencoded ({extended: true})); app.use (bodyParser.json ()); 

Как мы уже обсуждали ранее в нем была доступна функция next () . Если я хочу регистрировать что-либо для каждого входящего запроса, мне нужно написать следующий код.

 const logger = function (req, res, next) {console.log ('Промежуточное ПО используется в первый раз  ');  next ();} 

Точно так же есть один пакет Node под названием Morgan , который делает то же самое. Зарегистрируйте весь запрос в консоли. В реальном приложении Node js мы можем использовать промежуточное ПО, как показано ниже.

 var express = require ('express')  var app = express () const logger = function (req, res, next) {console.log ('поймано вторжение');  next ();} app.use (logger); app.get ('/', function (req, res) {res.send ('Express middleware tutorial');}); app.listen (3000); 

Пример аутентификации

Если нам нужно проверить, вошел ли пользователь в систему или нет для текущего маршрута, или попытаться получить доступ к аутентифицированному маршруту , тогда мы можем написать следующее руководство.

 router.get ('/', isLoggedIn, function (req, res) {res.render ('pages/index');}); function  isLoggedIn (req, res, next) {if (req. isAuthenticated ()) {следующий ();  } else {res.redirect ("/пользователи/логин");  }} 

В приведенном выше примере также называется «ПО промежуточного слоя маршрутизации». Он проверяет запрос, чтобы узнать, аутентифицирован ли пользователь. На основе ответа функции он соответствующим образом перенаправит пользователя.

Настраиваемое промежуточное ПО

Если вам нужно, чтобы ваше промежуточное ПО было настраиваемым , экспортируйте функцию, которая принимает объект параметров или другие параметры, которая затем возвращает реализацию промежуточного программного обеспечения на основе входных параметров.

//First.middleware.jsmodule.exports = function (options) {  return function (req, res, next) {//Реализуем функцию промежуточного программного обеспечения на основе объекта параметров next ();} 

Теперь используйте это промежуточное программное обеспечение в нашем server.js или назовите его как хотите.

//server.jsvar Fm = require ('./First.middleware.js'); app.use (Fm ({option1:  'App', option2: 'Dividend'})); 

Типы промежуточного программного обеспечения Express

В основном существует пять типов промежуточное ПО.

Промежуточное ПО уровня приложения

Привяжите промежуточное ПО уровня приложения к экземпляру объекта приложения с помощью а pp.use ().

В этом примере показана функция промежуточного программного обеспечения без пути монтирования. Каждый раз, когда пользователь отправляет запрос, всегда запускается функция промежуточного программного обеспечения.

 var express = require ('express') var app = express () const logger = function (req, res, next) {console  .log ('обнаружено вторжение');  next ();} app.use (logger); app.get ('/', function (req, res) {res.send ('Express middleware tutorial');}); 

Промежуточное ПО уровня маршрутизатора

Промежуточное ПО уровня маршрутизатора, привязанное к экземпляру

 const router = express.Router (); 

Загрузить промежуточное ПО уровня маршрутизатора с помощью функции router.use () .

 const app = express (); const router = express.Router (); router.use (function (req, res, next) {console.log ('Время:', Date.now ())  ; next ();}); 

Промежуточное ПО для обработки ошибок

Определите функции промежуточного ПО для обработки ошибок с четырьмя аргументами вместо три, в частности с подписью ( err, req, res, next ).

 app.use (function (err, req, res, next) {console  .error (err.stack); res.status (500) .send ('Упс! Что-то пошло не так');}); 

Встроенное промежуточное ПО

Express имеет следующее встроенное промежуточное программное обеспечение fu Функции:

  • express.static обслуживает статические ресурсы, такие как файлы HTML, изображения и т. д.
  • express.json анализирует входящие запросы с помощью JSON полезные нагрузки.
  • express.urlencoded анализирует входящие запросы с полезными данными в кодировке URL.

Стороннее промежуточное ПО

Установить узел. js для необходимой функциональности, а затем загрузите его в свое приложение на уровне приложения или на уровне маршрутизатора. Мы уже видели промежуточное ПО body-parser , которое является сторонним промежуточным ПО.

Наконец, наше Учебное пособие по промежуточному ПО Express окончено.

Оцените статью
nanomode.ru
Добавить комментарий