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

كيف يمكن تفادي حدوث تكرار في الحفظ في سيرفر node.js

سالم20031

السؤال

السلام عليكم ورحمة الله وبركاته لدي اشكاليه عند عملية req.post  تتكرر مرتين العلمية في السيرفر  مع العلم انها من المفرض انها يجب ان لا تتكرر الا مره واحده لا ادري أين المشكله وجزاكم الله خيرا 

 

 

image.thumb.png.8782fc8469ca29cfa0cb901e794d6603.pngimage.thumb.png.185f9c75d41a0167d2d31f38615fc90b.pngimage.png.acc7af5eb8b14a0d33c793ed258f19ea.png 

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0
بتاريخ 9 دقائق مضت قال Moath Haimour:

السلام عليكم ورحمة الله وبركاته عنجي اشكاليه عند عملية req.post  تتكرر مرتين العلميه مع العلم انها من المفرض ان تكون عمليه وحده لا ادري المشكله أين وجزاكم الله خيرا 

لا يظهر مشاكل في الكود قد تكون المشكلة من postman أو أياً كانت الطريقة التي تقوم بعمل الطلب،

قم بمشاركة ملفات المشروع بالكامل مضغوطة حتي يمكننا مساعدتك.

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

  • 0
بتاريخ 9 دقائق مضت قال أحمد رضا5:

لا يظهر مشاكل في الكود قد تكون المشكلة من postman أو أياً كانت الطريقة التي تقوم بعمل الطلب،

قم بمشاركة ملفات المشروع بالكامل مضغوطة حتي يمكننا مساعدتك.

 

p2.zip

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

  • 0
بتاريخ 2 ساعة قال Moath Haimour:

لم أقم بالتجربة،  ولكن المشكلة قد تكمن في أن الدالة save() في ملف models/cart.js تقوم بإضافة المنتج إلى ملف السلة التسوق كل مرة يتم فيها استدعاءها.

بمعنى آخر، إذا تم زيادة كمية منتج معين في سلة التسوق بالفعل، فإن الدالة save() ستزيد الكمية مرة أخرى عندما يتم استدعاءها مرة أخرى.

وتستطيع حل هذه المشكلة بتعديل الدالة Cart.save في ملف cart.js للتأكد من إذا كان المنتج موجودًا بالفعل في العربة فلا تزيد عدد الكمية بل يتم الاحتفاظ بها كما هي، بينما إذا كان المنتج غير موجود يتم حفظه في العربة بعدة قطع والكمية تكون واحدة.

static async save(id, price) {
  try {
    const cartFile = path.join(__dirname, "../", "data", "cart.json");
    const fileContent = await fs.readFile(cartFile);
    const cart = JSON.parse(fileContent);
    const productIndex = cart.products.findIndex((product) => product.id === id);

    if (productIndex !== -1) {
      cart.products[productIndex].quantity++;
    } else {
      cart.products.push({ id, price, quantity: 1 });
    }

    await fs.writeFile(cartFile, JSON.stringify(cart));
  } catch (error) {
    console.log(error);
  }
}

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...