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

السؤال

نشر (معدل)

لدي مساري توجيه ضمن إطار العمل 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

Recommended Posts

  • 0
نشر

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

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

لاحظ أن 

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

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

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

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...