Sie haben uns zu wenig Informationen, die Sie verwenden können, um zu helfen. Aber ich habe ein paar Tipps, wie ich herausfinden kann, was schief läuft: (Ich habe Beispielcode am Ende meiner Antwort hinzugefügt.)
Verwenden Sie eine ordnungsgemäße Formatierung Ihres Codes. Fehler sind leichter zu finden.
Bitte vermeiden Sie res.send(err)
. Die meisten Express-Apps bieten einen Fehler bei der HTML-Seitenübersetzung am Ende der Routenleitung. Dies funktioniert nur, wenn Sie anrufen. Wenn Ihre App am Ende der Pipe keine Fehlerseite generiert, können Sie res.status(400).json({success: false, msg: err.message});
verwenden.
Nach dem Einsatz von res.send
oder res.next
oder res.json
Sie die Ausführung der Funktion durch return
vor einem dieser Funktionen ein zweites Mal werden kann bis zum Ende haben genannt. Dies kann bei verschachtelten oder asynchronen Methodenaufrufen sehr kompliziert sein. Aber in Ihrem Beispiel ist es ziemlich einfach.
Verwenden Sie einige Log-Ausgaben, um zu sehen, welcher Teil des Codes Sie erreichen und welcher nicht.
console.dir(<object>);
druckt die Struktur dieses Objekts aus.
Hoffe das hilft ein wenig. ;-)
apiRoutes.put('/intake/:id', function(req, res)
{
var id = req.params.id;
Intake.findById(id, function(err, intake)
{
if (err)
{
res.next(err);
console.error(err);
return;
}
console.log("Modify check attribute");
intake.check = true;
console.dir(intake);
intake.save(function(err)
{
console.log("Intake save called!");
if (err)
{
console.error(err);
res.json({
success: false,
msg: 'Error'
});
return;
}
console.log("Success");
res.json({
success: true,
msg: 'Successful update check state.'
});
});
}})
});
Ist "check" eine gültige Eigenschaft in Ihrem Schema? Außerdem sollten Sie in Erwägung ziehen, ['findByIdAndUpdate'] (http://mongoosejs.com/docs/api.html#model_Model.findByIdAndUpdate) zu verwenden, damit Sie die Suche und die Aktualisierung mit einem einzigen Befehl ausführen können. – robertklep
Ich füge das erforderliche Feld hinzu: true im Schema funktioniert aber immer noch nicht –
Können Sie Ihr Schema zu Ihrer Frage hinzufügen? – robertklep