पिछले शर्त के साथ अपडेट - findOneAndUpdate - नेवला

वोट
0

मैं एक शर्त किसी मॉडल को अपडेट करने के लिए पिछले जोड़ने की जरूरत है। ठोस, सभी उपयोगकर्ताओं को एक भूमिका की है। केवल व्यवस्थापक उपयोगकर्ताओं को अपने स्वयं भूमिका को छोड़कर, अन्य उपयोगकर्ताओं डेटा को संशोधित कर सकते हैं। उदाहरण के लिए, मैं उपयोगकर्ता एक हूँ, और मैं व्यवस्थापक कर रहा हूँ। मैं उनकी भूमिका सहित, उपयोगकर्ता के बी डेटा को संशोधित कर सकते हैं। लेकिन मैं अपने खुद के भूमिका संशोधित नहीं कर सकते। इस मामले उपयोगकर्ता में एक उपयोगकर्ता की एक भूमिका को संशोधित नहीं कर सकते हैं। अब तक मैं सब कुछ है, लेकिन मैं अद्यतन समारोह में शर्त नहीं जोड़ सकते।

  User.findOneAndUpdate(req.params.id, req.body, { new: true }, (err, result) => {
  if (err) console.log(err);
  res.send(result);
})

सबसे अच्छा मैं कर सकता निम्नलिखित था:

exports.update = function (req, res) {

  const prevRole = req.user.role;

  if (req.user._id.toString() === req.params.id) {
    if (prevRole !== req.body.role) {
      res.json({ message: Can not update own user role. })
    }
  } else {
    User.findOneAndUpdate(req.params.id, req.body, { new: true }, (err, result) => {
      if (err) console.log(err);
      res.send(result);
    })
  }
}

संक्षेप में, मैं findOneAndUpdate में हालत जगह कर सकते हैं ()? कुछ मामले में, मैं इसे कैसे पूर्व हुक मिडलवेयर का उपयोग कर कर सकता है?

धन्यवाद!

14/01/2020 को 00:03
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more