Zen Eddin Allaham نشر الاثنين في 09:25 أرسل تقرير نشر الاثنين في 09:25 اريد فقط مساعدة في تلك مشكلة لم اجد لها حل book-store.zip 2 اقتباس
0 Mustafa Suleiman نشر الاثنين في 09:42 أرسل تقرير نشر الاثنين في 09:42 ترتيب المسارات لديك في ملف routes\book.routes.ts سبب المشكلة، حيث يتم مطابقة المسارات من أعلى لأسفل عند إرسال طلب، بالتالي إرسال طلب GET إلى /api/book/cart، فيتم مطابقته مع أول مسار وهو bookRouter.get('/:id', getBookById) والذي يعتبر السلسلة النصية cart كقيمة للمُعرف id. لذا قم بنقل المسار التالي من السطر 36 إلى 30 قبل bookRouter.get('/:id', getBookById); bookRouter.get('/cart', isAuthenticate, getCartUser); اقتباس
0 ياسر مسكين نشر منذ 13 ساعة أرسل تقرير نشر منذ 13 ساعة السلام عليكم ورحمة الله تعالى وبركاته، هل لا تزال المشكلة قائمة إلى الآن؟ في حال كانت كذلك أرجو الاطلاع على هاته الإجابة. المشكلة في الخطأ الذي ظهر لك: Cast to ObjectId failed for value 'cart' (type string) at path '_id' for model 'Book سببها أن لديك في ال Router endpoint /cart و /cart/:id وعند استدعاء GET /api/book/cart يمرر اسم "cart" كمعرّف بدل ObjectId في استعلام الكتاب وذلك بسبب ترتيب تعريف الروتس في الكود ففي الترتيب الحالي: bookRouter.get('/:id', getBookById); bookRouter.get('/cart', isAuthenticate, getCartUser); إذا جاء الطلب ل /cart بدون معرّف هنا Express يطابقه أولا مع /api/book/:id ويعتبر "cart" هو المعرف ويدخله ك param في getBookById، وبالتالي يبحث في قاعدة البيانات عن كتاب معرفه "cart" فيفشل ال cast إلى ObjectId لحل المشكلة يجب تغيير ترتيب تعريف الروتس بحيث تكون المسارات الثابتة مثل /cart قبل المتغيرة مثل /:id هكذا: bookRouter.get('/cart', isAuthenticate, getCartUser); bookRouter.get('/:id', getBookById); لتكون في النهاية هكذا: bookRouter.get('/', getAllBooks); bookRouter.get('/cart', isAuthenticate, getCartUser); bookRouter.post('/cart/:id', isAuthenticate, addToCart); bookRouter.delete('/cart/:id', isAuthenticate, deleteBookCart); bookRouter.get('/favorite', isAuthenticate, getFavoriteUser); bookRouter.post('/favorite/:id', isAuthenticate, addToFavorite); bookRouter.delete('/favorite/:id', isAuthenticate, deleteFavorite); bookRouter.get('/user', isAuthenticate, getBooksUser); bookRouter.put('/:id', isAuthenticate, updateBook); bookRouter.delete('/:id', isAuthenticate, deleteBook); bookRouter.get('/:id', getBookById); bookRouter.post('/upload', isAuthenticate, upload.single("image"), uploadBook); bookRouter.post('/profile', isAuthenticate, profileUser); اقتباس
السؤال
Zen Eddin Allaham
اريد فقط مساعدة في تلك مشكلة لم اجد لها حل
book-store.zip
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.