𝐖𝐡𝐚𝐭 𝐢𝐬 𝐌𝐢𝐝𝐝𝐥𝐞𝐰𝐚𝐫𝐞 ?

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

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

  1. 𝐃𝐞𝐟𝐢𝐧𝐢𝐭𝐢𝐨𝐧: ПО промежуточного слоя — это функция или набор функций, которые имеют доступ к запросу (req), ответу (res) и функции next в цикле запрос-ответ.
  2. 𝐄𝐱𝐞𝐜𝐮𝐭𝐢𝐨𝐧 𝐎𝐫𝐝𝐞𝐫:Функции промежуточного ПО выполняются в том порядке, в котором они объявлены в приложении. Поэтому будьте осторожны при написании кода промежуточного слоя в приложении node.js, чтобы выполнять правильную функциональность.

𝐖𝐡𝐲 𝐢𝐬 𝐌𝐢𝐝𝐝𝐥𝐞𝐰𝐚𝐫𝐞 𝐈𝐦𝐩𝐨𝐫𝐭𝐚𝐧𝐭?

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

𝐇𝐨𝐰 𝐌𝐢𝐝𝐝𝐥𝐞𝐰𝐚𝐫𝐞 𝐢𝐬 𝐮𝐬𝐞𝐝?

1.𝐆𝐥𝐨𝐛𝐚𝐥 𝐌𝐢𝐝𝐝𝐥𝐞𝐰𝐚𝐫𝐞: глобальное промежуточное ПО определяется с помощью app.use() и применяется ко всем маршрутам и запросам. Он выполняется для каждого входящего запроса и должен располагаться на верхнем уровне, то есть перед любыми запросами в коде.

Пример глобального промежуточного программного обеспечения:

const express=require('express')
const app=express()

app.use(logger)

app.get('/',(req,res)=>{
    console.log('home page')
    res.send('home page')
})

function logger(req,res,next){
    console.log('log')
    next()
}

app.listen(3000);

2.𝐑𝐨𝐮𝐭𝐞-𝐒𝐩𝐞𝐜𝐢𝐟𝐢𝐜 𝐌𝐢𝐝𝐝𝐥𝐞𝐰𝐚𝐫𝐞: промежуточное ПО можно применять к определенным маршрутам, помещая его перед функцией обработчика маршрута. Его можно применить к любому запросу get или post или любому другому запросу, существующему в коде.

Пример промежуточного ПО для конкретных маршрутов:

const express =require('express')
const app=express()

app.get('/users',auth,(req,res)=>{
    console.log(`user is admin = ${req.admin}`)
    console.log('users page')
    res.send('users page')
})

function auth(req,res,next){
    if (req.query.admin==='true'){
        req.admin=='true'
        next()
    } else{
        res.send('No auth')
    }
}

app.listen(3000);

𝐈𝐦𝐩𝐨𝐫𝐭𝐚𝐧𝐜𝐞 𝐨𝐟 𝐧𝐞𝐱𝐭( ) 𝐟𝐮𝐧𝐜𝐭𝐢𝐨𝐧:

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

const express=require('express')
const app=express()

app.use(logger)

app.get('/',(req,res)=>{
    console.log('home page')
    res.send('home page')
})

function logger(req,res,next){
    console.log('before')
    next()
    console.log('after')
}

app.listen(3000);


/* output of the code :

before
home page 
after 

*/

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

𝐈𝐦𝐩𝐨𝐫𝐭𝐚𝐧𝐭 𝐏𝐨𝐢𝐧𝐭𝐬 𝐨𝐟 𝐌𝐢𝐝𝐝𝐥𝐞𝐰𝐚𝐫𝐞:

  1. Промежуточное ПО — это функция или программа, которая выполняется между получением запроса и отправкой ответа.
  2. Глобальное промежуточное ПО запускается перед каждым запросом.
  3. ПО промежуточного слоя запускается в том порядке, в котором они определены.
  4. Промежуточное ПО также может быть привязано к одному действию, помещая его в обработчики маршрутов.
  5. Несколько функций промежуточного программного обеспечения могут быть переданы в виде массива.
  6. Доступ к параметрам запроса и ответа можно получить в промежуточном программном обеспечении.
  7. ПО промежуточного слоя может регистрировать или манипулировать данными запросов и ответов.
  8. Доступ к URL-адресу и другой информации можно получить из объекта запроса.
  9. Правильный порядок размещения промежуточного программного обеспечения имеет решающее значение.

Это некоторая базовая информация о промежуточном программном обеспечении в node.js и о том, как оно работает в node.js, с некоторыми примерами и моментами, которые необходимы новичку, который хочет заняться бэкэнд-разработкой с помощью node.js.