البرمجة

تعامل مع أخطاء الصفحة 404 في Express 4

لنتحدث عن كيفية التعامل مع أخطاء الصفحة 404 في تطبيق Express 4. تبدأ المشكلة من عدم تحديد مسارات الصفحات الفردية بشكل يدوي داخل النود، بالإضافة إلى الرغبة في توجيه الزوار إلى قالب Jade مخصص لصفحة 404 بشكل ديناميكي. هذه المهمة يمكن تحقيقها باستخدام middleware المناسبة.

أولاً، يجب علينا فهم كيفية عمل Express middleware. تستخدم middleware في Express لتنفيذ وسيطة البرمجة بين طلب المستخدم واستجابة الخادم. عندما يتم إرسال طلب إلى التطبيق، يتم تمريره عبر سلسلة من middleware، حيث يمكن لكل منها التعامل مع الطلب أو تمريره إلى الوسيطة التالية في السلسلة.

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

في الشفرة التي قدمتها، قمت بإنشاء middleware جديدة للتعامل مع الصفحات غير الموجودة. ومع ذلك، هناك بعض التعديلات التي يجب إجراؤها:

  1. استخدم path.join() للانضمام إلى المسارات بدلاً من استخدام عملية الدمج البسيطة للمسارات.
  2. تأكد من أن res.status(404) تعيد قيمة صحيحة.
  3. استخدم العملية المناسبة لفحص التوافق بين الأنواع المقبولة (req.accepts('html')) بدلاً من الاستخدام الخاطئ لعملية & بين الشروط.

فيما يلي كيفية تحسين الشفرة:

javascript
const express = require('express'); const http = require('http'); const path = require('path'); const app = express(); app.enable('verbose errors'); app.set('port', 3000); app.use(express.static(path.join(__dirname, 'html'))); app.use(function(req, res, next) { console.log('GET ' + req.originalUrl); console.log('At %d', Date.now()); next(); }); // Handle 404 app.use(function(req, res, next) { if (req.accepts('html') && res.status(404)) { res.render('404.jade'); return; } next(); }); const server = http.createServer(app); server.listen(app.get('port'), function() { console.log('ONLINE !'); });

تأكد من وجود قالب Jade للصفحة 404 وأنه موجود في المسار الصحيح. وبهذا، يجب أن يتم توجيه المستخدمين إلى الصفحة الخاصة بالخطأ عندما يطلبون صفحة غير موجودة.

المزيد من المعلومات

بالطبع، دعني أوسع المقال لشرح الموضوع بشكل أكبر.

التعامل مع أخطاء الصفحة 404 في Express 4

في تطبيقات الويب، يعتبر ظهور رمز الخطأ 404 واحدًا من أكثر الأمور إزعاجًا التي يمكن أن تواجه الزوار. يحدث هذا الخطأ عندما يحاول المستخدمون الوصول إلى صفحة غير موجودة على الخادم. لحسن الحظ، يمكن لتطبيق Express 4 التعامل مع هذا النوع من الأخطاء بسهولة باستخدام middleware المناسبة.

فهم Express Middleware

قبل أن نبدأ في مناقشة كيفية التعامل مع أخطاء الصفحة 404، دعنا نلقي نظرة سريعة على كيفية عمل middleware في Express.

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

تعريف Middleware للتعامل مع الصفحة 404

لحل مشكلة الصفحات غير الموجودة بشكل ديناميكي في Express 4، يمكننا استخدام middleware خاصة تتبع الصفحات غير الموجودة وتوجيه الزوار إلى صفحة الخطأ المناسبة.

في الشفرة السابقة التي تم تقديمها، استخدمنا middleware للتحقق مما إذا كان الطلب يقبل صيغة HTML وإذا كان رمز الحالة 404 قد تم تعيينه، ثم قمنا بتوجيه المستخدم إلى قالب Jade خاص بصفحة الخطأ.

تحسين الشفرة

مع ذلك، هناك بعض التحسينات التي يمكننا إجراؤها على الشفرة لتحسين أدائها وتوافقها:

  1. استخدم path.join() للانضمام إلى المسارات بدلاً من استخدام عملية الدمج البسيطة للمسارات. هذا يساعد في تجنب مشاكل الانضمام للمسارات في أنظمة التشغيل المختلفة.
  2. تأكد من أن res.status(404) تعيد قيمة صحيحة. هذا يتأكد من أننا نعالج فقط الطلبات التي أدت إلى 404.
  3. استخدم العملية المناسبة لفحص التوافق بين الأنواع المقبولة (req.accepts('html')) بدلاً من الاستخدام الخاطئ لعملية & بين الشروط.

الختام

باستخدام الشفرة المحسنة، يمكننا التعامل بشكل فعال مع أخطاء الصفحة 404 في تطبيق Express 4. باستخدام middleware المناسبة، يمكننا توجيه الزوار إلى صفحة الخطأ المناسبة دون الحاجة إلى تعريف مسارات يدويًا لكل صفحة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر