Der Benutzer hat die Möglichkeit, einige Werte zu aktualisieren. Wenn er jedoch nur { name: "new name" }
übergibt, werden die Felder für E-Mail und Kennwort ebenfalls aktualisiert, jedoch auf "null".Bei der Verwendung von findOneAndUpdate(): Wie belässt man Felder so, wie sie sind, wenn kein Wert angegeben wird (anstatt mit Null zu überschreiben)?
Wie kann ich nur die Felder aktualisieren, die tatsächlich in req.body zur Verfügung gestellt werden und den Rest so lassen, wie sie sind?
Dies ist, während immer noch angeben, welche Felder mit einer POST-Anfrage aktualisiert werden können - ich habe vermieden, nur in req.body übergeben, weil ich dies begrenzen möchte.
Mein Code sieht so aus:
db.User.findOneAndUpdate({_id: req.params.id}, {
name: req.body.name,
email: req.body.emaill,
password: req.body.password
})
etwas wie Name: req.body.name && req.body.name
zu überprüfen, ob ein Wert auch nicht undefiniert ist überschrieben mit „null“.
Danke!
Ich wollte beschränken, welche Werte aktualisiert werden könnten, indem Sie dies auf dem Server anstelle des Clients kodieren - sonst könnte jemand einige Post-Anforderungen manuell senden, um Werte zu aktualisieren, die nicht aktualisiert werden sollten. – dan674