【问题标题】:Node.js $http PUT request returns nothing to serverNode.js $http PUT 请求不向服务器返回任何内容
【发布时间】:2015-11-05 17:29:09
【问题描述】:

我正在开发一个管理客户信息的应用程序。我是 MEAN 堆栈的新手,我一生都无法弄清楚我在这里做错了什么。当我从视图中单击“更新客户”时,控制台会打印更新的信息,但是当我尝试将该信息发送到服务器并更新我的表时,我什么也得不到。 Customer 实体与之前保持一致。

视图

  <div class="col-sm-12" id="addButton" style="padding: 10px;" >
<button 
  class="btn btn-primary" 
  ng-click="update()" 
  ng-disabled="editCustomerForm.$invalid">Update Customer</button>

控制器

    $scope.update = function(){
  console.log($scope.existingCustomer);
  $http.put('/customers/' + $scope.existingCustomer._id, $scope.existingCustomer).success(function(response) {
  refresh(); 
  $scope.existingCustomer={};
  $scope.editOldCustomer = false;
  })  
 };

server.js 文件

app.put('/customers/:id', function (req, res) {
console.log(req.body);
var id = req.params.id
db.customers.findAndModify({
query: {_id: "mongojs.ObjectId(id)"},
update: {$set: {name: req.body.name, email: req.body.email, phone: req.body.phone,
                street: req.body.street, city: req.body.city, state: req.body.state, zip: req.body.zip}},
new: true}, function (err, doc) {
  res.json(doc);
}
 );
});

我已经为此绞尽脑汁了几个小时,只是不知道我做错了什么。感谢您的帮助,我非常感谢。很抱歉,如果某些代码的格式在堆栈上弄乱了

【问题讨论】:

  • 使用什么客户端或 ORM 与您的 MongoDB 实例交互?
  • 我通过 sudo npm mongojs install 安装了 monogojs

标签: angularjs node.js mongodb put meanjs


【解决方案1】:

你的问题看起来在这里:query: {_id: "mongojs.ObjectId(id)"}, 你实际上并没有创建一个 id,你可能应该这样做:var _id = mongojs.ObjectId(id); 然后像这样使用它:{query: {_id: _id},

【讨论】:

  • 可行,但现在我的应用程序不会在输入文本框中显示客户信息...
  • 没关系的错误完全不相关,感谢应用程序现在完美运行
  • 我想将此标记为正确答案,但我没有看到他们正在谈论的复选标记非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 2019-06-05
  • 2023-03-15
  • 2021-07-07
  • 2018-05-03
  • 2014-01-29
相关资源
最近更新 更多