Я получил угловую-экспресс приложение с мангустов и MongoDBредактировать сообщения с помощью экспресс-REST API
для угловой части у меня есть:
.controller('EditPostCtrl', ['$scope', '$http', '$location', '$routeParams', function($scope, $http, $location, $routeParams){
// populate the form
$scope.form = {};
$http.get('/api/post/' + $routeParams.post_id)
.success(function(data){
$scope.form = data;
});
// save changes and redirect
$scope.editPost = function(){
$http.put('/api/post/' + $routeParams.post_id, $scope.form)
.success(function(data){
$location.url('/post/' + $routeParams.post_id);
});
};
}])
Тогда для экспресс-части у меня есть маршрут:
app.put('/api/post/:post_id', posts.editPost);
exports.editPost = function(req, res){
var updatedPost = {
title: req.body.title,
text: req.body.text,
created: req.body.created
};
Post.update({ _id: req.body._id }, updatedPost, function(err, affected){
console.log('affected %d', affected);
});
};
после того как я запустить сервер я могу обновить сообщения, но после редактирования я не попадаю в '/post/' + $routeParams.post_id
как я объявляю в угловой. Что мне нужно в функции editPost?
okay это работает, но я никогда не видел, чтобы 204 использовался в коде других людей, есть ли лучший способ редактировать записи, учитывая угловое у меня? –
Ну, можно утверждать, что после обновления сервер должен вернуть обновленный объект как тело с 200. Я добавил пример кода - я надеюсь, что правильно понял mongoose :) – Sonata
Вы также можете попробовать использовать [$ resource] (http://code.angularjs.org/1.2.1/docs/api/ngResource.$resource) и создание ваших экспресс-сервисов соответственно – Sonata