Frissítés korábbi állapot - findOneAndUpdate - Mongoose

szavazat
0

Kell hozzá egy állapot előző frissíteni a modell. Konkrétan, minden felhasználó rendelkezik egy „szerep”. Csak az „admin” felhasználó módosíthatja más felhasználók adatait, kivéve a saját „szerep”. Például, én az A felhasználó, és én „admin”. Azt lehet módosítani a felhasználó B adatokat, beleértve a szerepét. De nem lehet módosítani a saját „szerep”. Ebben az esetben az A felhasználó nem módosíthatja a felhasználó egy szerepet. Eddig már mindent, de azt nem lehet hozzáadni a feltételnek a frissítés funkciót.

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

A legjobb, amit tehettem a következő volt:

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);
    })
  }
}

Összefoglalva, lehet helyezni a feltétel a findOneAndUpdate ()? Néhány esetben, hogyan lehetne azt csinálni, az előre horog middleware?

Köszönöm!

A kérdést 14/01/2020 00:03
a forrás felhasználó
Más nyelveken...                            

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