Kann mir bitte jemand sagen, warum meine POST-Methode nicht über Mongoose in meine MongoDB speichern?Local Node API nicht zu Mongoose DB
Mein Angular Controller
$scope.saveUpdate = function(id){
$http.post('/api/entry/' + id)
.success(function(data){
$scope.entry = data;
})
.error(function(data){
console.log('There was a problem saving your entry: ' + data);
});
// update page with remaining entries
$http.get('/api/entries').then(function(response){
$scope.entries = response.data;
});
}
Meine API
app.post('/api/entry/:entry_id', function(req, res){
if (req.params) {
Entries.findByIdAndUpdate({
_id : req.params,
// the properties we're updating and the new values
username: req.body.username,
date: req.body.date,
income: req.body.income
}, function(err, entry){
if (err) {
res.send(err) }
else {
res.send('Success!');
}
})
}
});
Die Schaltfläche in der
<button type="submit" class="btn" ng-click="saveUpdate(entry._id)">Update</button>
Der aktualisierte Eintrag der DOM Ansicht einreichen trifft, wenn die Schaltfläche geklickt wird, aber wenn es trifft den Angular-Core-Code, der in den ursprünglichen Zustand zurückkehrt, ohne die DB zu aktualisieren. Es werden auch keine Fehler ausgelöst.
Ich sehe, was du sagst. Nach dem Ersetzen von 'entry_id' zu meiner Anfrage wird die Datenbank leider immer noch nicht aktualisiert. Es wird wieder auf den ursprünglichen Eintrag zurückgesetzt, wenn es einen 'completeRequest'-Callback in der angular.js-Core-Datei findet. Keine Ahnung, warum das so ist. – PanicBus
@PanicBus siehe meine Antwort, ich habe den Aufruf von 'Entries.findByIdAndUpdate()' in meiner Antwort aktualisiert. Der erste Parameter sollte der _id-Wert sein, der mit "req.params.entry_id" übereinstimmt. Der zweite Parameter ist ein Objekt der Felder und ihrer Werte zum Aktualisieren. Sie übergeben Ihre Felder an Update und Ihre ID in einem Objekt und einem Parameter, der falsch ist. [Model.findByIdAndUpdate Docs] (http://mongoosejs.com/docs/api.html#model_Model.findByIdAndUpdate) – peteb
Ich sehe was passiert. Und du hattest recht, "Körper" kommt als leeres Objekt 'Körper: {}'. Würdest du sofort wissen, warum das so ist und wie man die Daten analysiert, die vom Requ kommen? Ich habe die Body-Parser-Middleware eingebaut und benutzt. – PanicBus