Zen Eddin Allaham نشر منذ 5 ساعة أرسل تقرير نشر منذ 5 ساعة توجد مشكلة في مشروعي والتي هي عند انشاء مهمة لا يظهر نص ويطبع ب كونسول غير مصرح به مع اني مررت توكن وربط باك اند ب فرونت اند ب طريقة صحيحة ولا اعلم ما مشكلة To-Do-list full-stack.zip 1 اقتباس
0 Mustafa Suleiman نشر منذ 3 ساعة أرسل تقرير نشر منذ 3 ساعة لديك خطأ 401 أي عملية غير مُصرح بها، لأن التوكن لم يتم تخزينه بعد تسجيل الدخول، لذا الطلب إلى /api/todos يُرسل بدون Authorization، كذلك يوجد تحذير الـ key وسببه أن دالة createTask تُعيد الجسم الكامل { newTodo, user } بينما الواجهة تتوقع كائن المهمة فقط، فينتج عنصر بدون _id في المصفوفة. في ملف page.tsx يجب حفظ التوكن بعد تسجيل الدخول: if(res?.message){ setError(res?.message); setLoading(false); }else{ alert("تم تسجيل الدخول بنجاح"); localStorage.setItem("token", res.token); // هنا router.push("/home") } كذلك، تعديل createTask لإعادة data.newTodo وللتحقق من الأخطاء: export async function createTask(title:string) { const token = localStorage.getItem("token"); const res = await fetch('http://localhost:3000/api/todos', { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token ?? ""}` }, body: JSON.stringify({title}), }); if (!res.ok) { const err = await res.json().catch(() => ({})); throw new Error(err?.message || "Request failed"); } const data = await res.json(); return data.newTodo; } كذلك يجب تحويل الـ _id إلى نص عند توليد التوكن فحاليًا أنت تمرر كائن، في ملف app\api\auth\login\route.ts: const token = generateToken(user._id.toString()); ثم شغل الخادم وتوجه إلى الرابط التالي وسجل الدخول: http://localhost:3000/ اقتباس
السؤال
Zen Eddin Allaham
توجد مشكلة في مشروعي والتي هي عند انشاء مهمة لا يظهر نص ويطبع ب كونسول غير مصرح به مع اني مررت توكن وربط باك اند ب فرونت اند ب طريقة صحيحة ولا اعلم ما مشكلة
To-Do-list full-stack.zip
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.