Tamim Fahed نشر 4 يوليو 2021 أرسل تقرير نشر 4 يوليو 2021 أقوم باستخدام Express في node.js وقمت بإنشاء وسيط قبل تنفيذ تابع معيّن بالشكل التالي: app.get('/admins', Role, function(req,res){ ... }) ولكن هل من الممكن تمرير متغيّرات ضمن هذا الوسيط Role؟ بحيث تكون هذه المتغيرات من الطلب request نفسه؟ 1 اقتباس
1 عبدالله عبدالرحمن11 نشر 4 يوليو 2021 أرسل تقرير نشر 4 يوليو 2021 نعم تستطيع بناء وسيط 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 محمد أيت لعرايك نشر 5 يوليو 2021 أرسل تقرير نشر 5 يوليو 2021 أو يمكنك كتابة الدلة في الموجه 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(); }; اقتباس
السؤال
Tamim Fahed
أقوم باستخدام Express في node.js وقمت بإنشاء وسيط قبل تنفيذ تابع معيّن بالشكل التالي:
app.get('/admins', Role, function(req,res){ ... })
ولكن هل من الممكن تمرير متغيّرات ضمن هذا الوسيط Role؟ بحيث تكون هذه المتغيرات من الطلب request نفسه؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.