NodeJS / Angular Edit Request получает ошибку 400

0

Я работаю над приложением с Ionic/Angular с поддержкой NodeJS. Я создал форму обновления, в которой пользователь может редактировать/удалять строку. Удаление работает, но у меня возникают проблемы с функцией редактирования. На моей консоли это отображается: http://localhost: 3000/api/todos/% 7B% 22todo% 22:% 22NewT% 22,% 22todo_text% 22:% 22Text %20EditionT% 22% 7D. Мне интересно, как я могу заставить запрос на редактирование работать.

Ниже мой код для запроса на сервер:

router.put('/api/todos/:_id', function(req, res) {

db.todos.update({
  _id: mongojs.ObjectId(req.body._id)
}, {
  todo: req.body.todo, 
  todo_text: req.body.todo_text
}, {}, function(err, data) {
  res.json(data);
});

});

Код для моей формы обновления (как функция удаления, так и редактирования). Обратите внимание, что HomeFac для моих services.js, где он направляет REST API (http://localhost: 3000/api/todos/(id number):

.controller('UpdateCtrl', function($stateParams, $rootScope, $scope, HomeFac) {  
id = $stateParams.id;  

$scope.todo = {}; 

HomeFac.getBeer(id).success(function(data) {  

      var met = data[0]; 

      $scope.todo.todo = met.todo; 
      $scope.todo.todo_text = met.todo_text; 
});

$scope.edit = function(id, inputs) {  

    var inputs = { 
        todo : $scope.todo.todo, 
        todo_text : $scope.todo.todo_text
     };  

    data = angular.toJson(inputs); 

    HomeFac.updateBeer($stateParams.id, data
    ).then(function(id, data) { 
      alert("edited!"); 
    }); 
}; 

$scope.delete = function() { 
   HomeFac.deleteBeer(id);
}; 

}); 

Обслуживание пива в services.js

_BeerService.updateBeer = function(todo, _id) { 
 return $http.put(urlBase + '/' + _id, todo); 
}; 
  • 0
    Можете показать функцию updateBeer?
  • 0
    @LeandroZubrezki Только что добавил код.
Показать ещё 3 комментария
Теги:
ionic

1 ответ

1

Вероятно, это потому, что req.body._id не undefined. Вероятно, вы ищете req.params._id. Учитывая, что он не определен, функция обновления не может найти правильный документ.

Примечание. Вам не нужно _id свой параметр _id. Параметры URL-адреса похожи на функциональные параметры: вы можете назвать их так, как хотите, и поэтому вы, вероятно, хотите назвать его более удобным, например id.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню