نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
العودة للتغريدات
مشكلة

UnhandledPromiseRejection: Cannot read properties of undefined (reading 'id') عند الربط مع Express و JWT

K
kamel
·١٦ يوليو ٢٠٢٦·2 مشاهدة
أقوم ببناء API باستخدام Express.js لحماية المسارات (Protected Routes) بواسطة JSON Web Token (JWT). المطلوب: التحقق من التوكن الممرّر في الـ Authorization Header وثم إرفاق بيانات المستخدم المفكوك سريتها إلى الكائن req.user لتصل إلى المسار التالي (Middleware Chain). المشكلة الحاصلة: عند التوجه إلى المسار /api/profile وإرسال الـ Token الصحيح، يتوقف الخادم أو يرجّح الخطأ التالي دون استجابة: UnhandledPromiseRejectionWarning: TypeError: Cannot read properties of undefined (reading 'id') at /app/middleware/auth.js:14:28
JavaScript
const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();

app.use(express.json());

// Auth Middleware
const authenticateToken = (req, res, next) => {
    const authHeader = req.headers['authorization'];
    const token = authHeader && authHeader.split(' ')[1];

    if (!token) return res.status(401).json({ message: 'No token provided' });

    jwt.verify(token, 'SECRET_KEY', (err, decodedUser) => {
        if (err) return res.status(403).json({ message: 'Invalid token' });
        
        // السطر المشتبه به
        req.user = decodedUser;
    });

    next(); // يتم استدعاؤها هنا بشكل مباشر!
};

// Protected Route
app.get('/api/profile', authenticateToken, (req, res) => {
    // يحدث الخطأ هنا لأن req.user لم يُجهّز بعد
    res.json({ userId: req.user.id, status: 'Active' });
});

app.listen(3000, () => console.log('Server running on port 3000'));
مشاكل-nodejsمشاكل-javascriptأخطاءexpress-jsتوثيق-jwtبرمجة-back-endasync-js

التعليقات (0)

لا يوجد تعليقات بعد — كن أول من يعلّق!

سجّل دخولك لإضافة تعليق

تسجيل الدخول
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر