• 0

استخدام regex في مطابقة المسارات في node.js

لدي مساري توجيه ضمن إطار العمل express متشابهين:

/posts/:slug/

/articles/:slug/

وقمت بتكرار نفس الكود إلى كل مسار:

app.get('/posts/:slug', samecode)
app.get('/articles/:slug', samecode)

ولكن أرغب بدمج هذه المسارات بحيث يتم تنفيذ نفس الكود عند الوصول إلى أي منهما:

app.get('/[posts|articles]/:slug', function(req, res, next) {

  ....

})

فكيف يمكنني تحقيق ذلك بدلاً من تكرار الشيفرة البرمجية لكل مسار؟

تمّ تعديل بواسطة Bassel Jhr
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


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

نعم يمكنك تنفيذ المطلوب بواسطة الكود التالي

app.get(/^\/(posts|articles)\/(.+)/, function (req, res, next) {
 
});

لاحظ أن 

  • (+) يعني وجود slug حيث أن يجب أن يحتوي حرف واحد للتأكيد من وجود ال slig

أو يمكنك استخدام الحل التالي

app.get('/:type(posts|articles)/:id', ...)

 

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن