用node.js和angular更新数据库

我有一个应用程序,发布,获取和删除数据,我想添加'更新'function,但我不知道它..我有一个node.js服务器有这样的api:

app.get('/api/feedbacks', function(req, res) { // use mongoose to get all feedbacks in the database getfeedbacks(res); }); // create feedback and send back all feedback after creation app.post('/api/feedbacks', function(req, res) { // create a feedback, information comes from AJAX request from Angular FeedBack.create(req.body, function(err, feedback) { if (err) res.send(err); // get and return all the feedbacks after you create another getfeedbacks(res); }); }); // delete a feedback app.delete('/api/feedbacks/:feedback_id', function(req, res) { FeedBack.remove({ _id : req.params.feedback_id }, function(err, feedback) { if (err) res.send(err); getfeedbacks(res); }); }); 

以及对节点api说话的angular度服务:

 service.factory('FeedBacks', ['$http',function($http) { return { create : function(feedBackData) { return $http.post('/api/feedbacks', feedBackData); }, get : function() { return $http.get('/api/feedbacks'); }, delete : function(id) { return $http.delete('/api/feedbacks/' + id); } } }]); 

这样我可以发布,获取和删除数据。

我的目标是添加更新function。

我在节点上试过的东西:

 // update a feedback app.put('/api/feedbacks/:feedback_id', function(req, res) { // edit a feedback, information comes from AJAX request from Angular FeedBack.put(req.body, function(err, feedback) { if (err) res.send(err); // get and return all the feedbacks after you edit one getfeedbacks(res); }); }); 

在angular服务:

 update: function(editFeedId, editedFeed){ return $http.put('/api/feedbacks/' + editFeedId, editedFeed); } 

控制器看起来像:

 $scope.editFeed = function(id) { $scope.editFeedId = id; $scope.editedFeed = 'replace this txt' FeedBacks.update($scope.editFeedId, $scope.editedFeed) // if successful creation, call our get function to get all the new feedBacks .success(function(data) { console.log('updated'); $scope.feedbacks = data; }); }; 

我执行editFeed()时出现500错误。 我无法弄清楚configuration! 我在哪里做错了? 有小费吗?

提前感谢!

我假设你在这里使用Mongo,在这种情况下你的更新语句是不正确的。

它应该是这样的:

 app.put('/api/feedbacks/:feedback_id', function(req, res) { FeedBack.update({_id: req.params.feedback_id}, req.body, function(err, feedback) { if (err) res.send(err); // get and return all the feedbacks after you edit one getfeedbacks(res); }); });