𝐖𝐡𝐚𝐭 𝐢𝐬 𝐌𝐢𝐝𝐝𝐥𝐞𝐰𝐚𝐫𝐞 ?
Промежуточное ПО в Express.js — это важнейшая концепция, позволяющая добавлять функциональные возможности в ваше веб-приложение путем обработки запросов и ответов. Он работает, перехватывая входящие запросы и выполняя действия, прежде чем передать их следующему промежуточному программному обеспечению или отправить ответ обратно клиенту.
Он действует как мост между запросом и ответом, обеспечивая дополнительные функции, модификации и обработку ошибок на протяжении всего жизненного цикла запрос-ответ. Чтобы глубже понять промежуточное ПО, внимательно прочитайте эту статью.
- 𝐃𝐞𝐟𝐢𝐧𝐢𝐭𝐢𝐨𝐧: ПО промежуточного слоя — это функция или набор функций, которые имеют доступ к запросу (
req
), ответу (res
) и функцииnext
в цикле запрос-ответ. - 𝐄𝐱𝐞𝐜𝐮𝐭𝐢𝐨𝐧 𝐎𝐫𝐝𝐞𝐫:Функции промежуточного ПО выполняются в том порядке, в котором они объявлены в приложении. Поэтому будьте осторожны при написании кода промежуточного слоя в приложении 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(), вызывается запрос на получение и печатается «домашняя страница», а затем возвращается к промежуточному программному обеспечению и печатается «после». Таким образом, следующая функция очень полезна для передачи управления обработчикам маршрутов.
𝐈𝐦𝐩𝐨𝐫𝐭𝐚𝐧𝐭 𝐏𝐨𝐢𝐧𝐭𝐬 𝐨𝐟 𝐌𝐢𝐝𝐝𝐥𝐞𝐰𝐚𝐫𝐞:
- Промежуточное ПО — это функция или программа, которая выполняется между получением запроса и отправкой ответа.
- Глобальное промежуточное ПО запускается перед каждым запросом.
- ПО промежуточного слоя запускается в том порядке, в котором они определены.
- Промежуточное ПО также может быть привязано к одному действию, помещая его в обработчики маршрутов.
- Несколько функций промежуточного программного обеспечения могут быть переданы в виде массива.
- Доступ к параметрам запроса и ответа можно получить в промежуточном программном обеспечении.
- ПО промежуточного слоя может регистрировать или манипулировать данными запросов и ответов.
- Доступ к URL-адресу и другой информации можно получить из объекта запроса.
- Правильный порядок размещения промежуточного программного обеспечения имеет решающее значение.
Это некоторая базовая информация о промежуточном программном обеспечении в node.js и о том, как оно работает в node.js, с некоторыми примерами и моментами, которые необходимы новичку, который хочет заняться бэкэнд-разработкой с помощью node.js.