【问题标题】:NodeJS/Angular Edit Request Gets 400 ErrorNodeJS/Angular 编辑请求得到 400 错误
【发布时间】:2015-11-27 14:12:59
【问题描述】:

我正在使用带有 NodeJS 后端的 Ionic/Angular 开发应用程序。我制作了一个更新表单,用户可以在其中编辑/删除一行。删除有效,但编辑功能有问题。在我的控制台上,会显示: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 编号):

.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); 
}; 

【问题讨论】:

  • 可以展示updateBeer函数吗?
  • @LeandroZubrezki 刚刚添加了代码。
  • 您是否在服务器中收到请求?在那里添加一个日志并检查发生了什么。还为 promise 添加一个错误函数,以便您知道它是否失败
  • 前端唯一重要的是传入的请求是什么,所以我将问题简化为“这个请求在给定这个服务器端代码的情况下得到这个响应”。
  • 一些问题:它是否上路了? req.body 是您所期望的吗?是否正在运行回调?如果有,errordata 是什么?

标签: javascript angularjs node.js ionic


【解决方案1】:

这可能是因为req.body._idundefined。您可能正在寻找req.params._id。鉴于未定义,update 函数无法找到正确的文档。

注意:您不必将 url 参数设为_id。 URL 参数类似于函数参数:您可以随意命名它们,因此您可能希望将其命名为更方便的名称,例如id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2015-06-02
    相关资源
    最近更新 更多