اذهب إلى المحتوى
  • 0

تمرير متغيرات ضمن الوسيط middleware في node.js

Tamim Fahed

السؤال

أقوم باستخدام Express في node.js وقمت بإنشاء وسيط قبل تنفيذ تابع معيّن بالشكل التالي:

app.get('/admins', Role, function(req,res){
	...
})

ولكن هل من الممكن تمرير متغيّرات ضمن هذا الوسيط Role؟ بحيث تكون هذه المتغيرات من الطلب request نفسه؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

نعم تستطيع بناء وسيط middleware لعمل ذلك ، ويمكنك بناء الدالة على هذا الشكل

function Role(role) {
  return function(req, res, next) {
    if (role !== req.user.role) res.redirect(...);
    else next();
  }
}

ويمكنك إستخدام هذا الكود للتأكد من أنك لا تقوم بعمل نسخ متعددة من نفس الدالة:

function Role(role) {
  return Role[role] || (Role[role] = function(req, res, next) {
    if (role !== req.user.role) res.redirect(...);
    else next();
  })
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

أو يمكنك كتابة الدلة في الموجه admins  على الشكل التالي:

app.get('/admins', (req, res, next) => {
  role(req, res, next, req.user.role);
}, (req,res) => { 
    // admins  أوامر الموجه 
});

بعد ذلك تكتب  role middleware  على الشكل التالي:

const role = (req, res, next, role_name) => {
   if(role_name != 'admin'){
     // هنا مثلا يمكنك التخقق من دور المستخدم ثم إجراء التحوبل إلى صفحة أخرى
   }
   next();
};

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...