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

إعادة التوجيه إلى الصفحة 404 ضمن express في node.js

Tamim Fahed

السؤال

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

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

Recommended Posts

  • 1

يجب عليك أولا تحديد جميع المسارات الخاصة بالمشروع وفي النهاية تضيف المسار 404 كالتالي

app.get('*', function(req, res){
  res.status(404).send('404');
});

على سبيل المثال

var express = require('express'),
    app = express.createServer();

app.use(express.static(__dirname + '/public'));

app.get('/', function(req, res){
  res.send('hello world');
});


app.get('*', function(req, res){
  res.send('404', 404);
});

app.listen(3000, '127.0.0.1');

 

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

  • 1

تتم إضافة المسار التالي في الأسفل بعد كتابة جميع المسارات الموجودة في مشروعك، وفي حال تمت زيارة مسار غير موجود يتم الدخول إلى هذا المسار ومعالجة الخطأ 404:

app.get('*', function(req, res){
  res.status(404).send('not found');
});

أما من ناحية إرسال الخطأ، فيوجد عدة طرق وهي كالتالي:

app.use(function(req, res, next) {
  res.status(404);

  // الرد بإرسال صفحة HTML
  if (req.accepts('html')) {
    res.render('404', { url: req.url });
    return;
  }

  // إرسال الرد بصيغة JSON
  if (req.accepts('json')) {
    res.json({ error: 'Not found' });
    return;
  }

  // إرسال الرد بصيغة نصية
  res.type('txt').send('Not found');
});

أما في حال أردت إرسال الخطأ 404 بعد معالجة معيّنة ضمن تابع ما أو متحكّم خاص، يمكنك إرسال الخطأ مباشرةً ضمن التابع من خلال:

res.status(404).send('not found')

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

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...