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

السؤال

نشر

أحاول تنفيذ دالة updateOne من Mongodb على NEXTJS. ولكن لا يتم تحديثه ، من console.log (req.body) يمكن الحصول على المعلومات.

handler.patch(async (req, res) => {
  if (!req.user) {
    res.status(401).end();
    return;
  }
  const { name, bio } = req.body;
  await req.db.collection('users').updateOne(
    { _id: req.user._id },
    {
      $set: {
        ...(name && { name }),
        bio: bio || '',
      },
    },
  );
  res.json({ user: { name, bio } });
});

console.log(req.body)

Content-Disposition: form-data; name="name"

Firstname Lastname
------WebKitFormBoundaryPwuAfw4FvUzDe8uP
Content-Disposition: form-data; name="bio"

xx
------WebKitFormBoundaryPwuAfw4FvUzDe8uP--

 

Recommended Posts

  • 0
نشر

أعتقد أن الخطأ في الحصول على الطلبية بصيغة JSON تأمد من تفعيل bodyParser ربما تراها متوقفة bodyParser: false

وربما id لديك من نوع ObjectID لذلك عليك تحويلها..

const {ObjectId} = require('mongodb');

{ "_id": ObjectId(req.user._id)}, 

 

حاول وضع الخيار {returnOriginal: false} لنجبر إعادة البيانات المعدلة

return collection.findOneAndUpdate(   // بحث وتحديث
    {_id: ObjectId(id)},     فلترة
    {$set: updatedDoc},      تمرير البيانات المعدلة
    {returnOriginal: false}  // هنا نمنع الاستعلام من إعادة البيانات الأصلية
  );

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...