Express Middleware

قطعة من البرمجيات الوسيطة هي وظيفة ترتبط بعملية التوجيه ، وتنفذ عملية عشوائية في نقطة ما في السلسلة (اعتمادًا على ما نريدها أن تفعله).

قطعة من البرمجيات الوسيطة هي وظيفة ترتبط بعملية التوجيه ، وتنفذ عملية عشوائية في نقطة ما في السلسلة (اعتمادًا على ما نريدها أن تفعله).

يتم استخدامه بشكل شائع لتحرير كائنات الطلب أو الاستجابة ، أو إنهاء الطلب قبل أن يصل إلى رمز معالج المسار.

تُضاف البرمجيّة الوسيطة إلى مكدس التنفيذ كما يلي:

app.use((req, res, next) => { /* */ })

هذا مشابه لتعريف المسار ، ولكن بالإضافة إلى حالات كائنات الطلب والاستجابة ، لدينا أيضًا مرجع إلىالتاليالدالة الوسيطة ، والتي نسندها إلى المتغيرnext.

نحن دائما نتصلnext()في نهاية دالة البرمجيات الوسيطة ، من أجل تمرير التنفيذ إلى المعالج التالي. هذا ما لم نرغب في إنهاء الاستجابة قبل الأوان وإعادة إرسالها إلى العميل.

عادة ما تستخدم برمجيات وسيطة مسبقة الصنع ، على شكلnpmالحزم. يمكن العثور على قائمة كبيرة من المتاحهنا.

مثال واحد هوcookie-parser، والذي يستخدم لتحليل ملفات تعريف الارتباط إلى ملفreq.cookiesموضوع. يمكنك تثبيته باستخدامnpm install cookie-parserوتستخدمه على هذا النحو:

const express = require('express')
const app = express()
const cookieParser = require('cookie-parser')

app.get(’/’, (req, res) => res.send(‘Hello World!’))

app.use(cookieParser()) app.listen(3000, () => console.log(‘Server ready’))

يمكننا أيضًا تعيين دالة برمجية وسيطة لتعمل لمسارات محددة فقط (وليس للجميع) ، وذلك باستخدامها كمعامل ثاني لتعريف المسار:

const myMiddleware = (req, res, next) => {
  /* ... */
  next()
}

app.get(’/’, myMiddleware, (req, res) => res.send(‘Hello World!’))

إذا كنت بحاجة إلى تخزين البيانات التي تم إنشاؤها في برمجية وسيطة لتمريرها إلى وظائف وسيطة لاحقة ، أو إلى معالج الطلب ، فيمكنك استخدامRequest.localsموضوع. سيتم إرفاق تلك البيانات بالطلب الحالي:

req.locals.name = 'Flavio'

تحميل مجانيكتيب Express.js


المزيد من البرامج التعليمية السريعة: