Middleware في Express.js: معالجة الطلبات المتوسطة

مقدمة Middleware في Express.js

Middleware in Express.js هو مفهوم قوي يسمح لك بتنفيذ الوظائف بترتيب معين خلال دورة حياة الطلب والاستجابة. يمكن أن تؤدي هذه الوظائف مهام مختلفة مثل المصادقة والتسجيل والتحقق من صحة البيانات والمزيد. Middleware يتم تنفيذ الوظائف بالتسلسل ، ولكل منها middleware وصول إلى request الكائنات response ، بالإضافة إلى الوظيفة next ، التي تمرر التحكم إلى التالي middleware في المكدس.

لماذا تستخدم Middleware ؟

Middleware ضروري لتهيئة وظائف التطبيق وتحسين قابلية صيانته. فهو يمكّنك من الحفاظ على نظافة معالجات المسار الخاصة بك والتركيز على مهام محددة أثناء تفريغ المهام المشتركة أو الشاملة للوظائف middleware. يعزز فصل الاهتمامات هذا من إمكانية إعادة استخدام الكود ويجعل قاعدة الكود الخاصة بك أكثر تنظيماً.

الإبداع والاستخدام Middleware

للإنشاء middleware ، Express.js يمكنك تحديد دالة تأخذ ثلاث معلمات: request و response و و next.

فيما يلي مثال أساسي على middleware ذلك يسجل كل طلب وارد:

const logMiddleware =(req, res, next) => {  
  console.log(`Received a ${req.method} request at ${req.url}`);  
  next(); // Pass control to the next middleware  
};  
  
app.use(logMiddleware);  

يمكنك استخدام app.use() الطريقة لتطبيقها middleware عالميًا على جميع المسارات ، أو يمكنك استخدامها بشكل انتقائي لمسارات محددة.

ترتيب Middleware التنفيذ

Middleware يتم تنفيذ الوظائف بالترتيب الذي تم تحديدها به باستخدام app.use().

على سبيل المثال:

app.use(middleware1);  
app.use(middleware2);  

في هذه الحالة ، middleware1 سيتم تنفيذها من قبل middleware2 لجميع الطلبات الواردة.

معالجة الأخطاء في Middleware

في حالة حدوث خطأ داخل إحدى middleware الوظائف ، يمكنك تمرير الخطأ إلى الوظيفة next ، Express.js وستنتقل تلقائيًا إلى معالجة الأخطاء middleware.

هذا مثال:

const errorMiddleware =(err, req, res, next) => {  
  console.error(err);  
  res.status(500).send('Something went wrong!');  
};  
  
app.use(errorMiddleware);  

استخدام Middleware للمصادقة

Middleware يستخدم عادة لتنفيذ المصادقة والترخيص في تطبيقات الويب. على سبيل المثال ، يمكنك إنشاء middleware وظيفة تتحقق مما إذا كان المستخدم قد تمت مصادقته قبل السماح بالوصول إلى مسارات معينة:

const authenticateMiddleware =(req, res, next) => {  
  if(req.isAuthenticated()) {  
    return next(); // User is authenticated, proceed to the next middleware  
  }  
  res.redirect('/login'); // User is not authenticated, redirect to login page  
};  
  
app.get('/profile', authenticateMiddleware,(req, res) => {  
  res.send('Welcome to your profile!');  
});  

 

خاتمة

Middleware in Express.js هو أداة حيوية لإدارة وتعزيز وظائف تطبيقات الويب الخاصة بك. من خلال إنشاء middleware وظائف قابلة لإعادة الاستخدام ، يمكنك تبسيط التعليمات البرمجية الخاصة بك ، وتقسيم المخاوف إلى نمط معياري ، وتحسين إمكانية الصيانة الشاملة لمشاريعك. من معالجة المصادقة إلى التسجيل وإدارة الأخطاء ، middleware يمكّنك من إنشاء تطبيقات ويب قوية وآمنة بكفاءة.