1
我有一個應用程序,發佈,獲取和刪除數據,我想添加'更新'功能,但我不知道它.. 我有一個節點。其中提到到節點API更新數據庫與node.js和角
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);
});
});
和這樣的角度服務:
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);
}
}
}]);
這樣我可以發佈,獲取和刪除數據,有這樣的API的js服務器。
我的目標是添加更新功能。
我已經試過節點:
// 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);
});
});
對角服務:
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;
});
};
我得到500錯誤,因爲我執行editFeed() 。我無法想象配置!我在哪裏做錯了?有小費嗎?
非常感謝!
你Node.js的服務器上使用快遞,對不對?如果是的話,你使用express ** body-parser **嗎?如果你沒有使用它,你的req.body將返回null,它不會保存數據。這就是爲什麼狀態500. –
@AndreyLuiz是的,我使用快遞和我使用body-parser .. – Mar