Reactjs req.body显示[object Object]

时间:2016-03-10 15:14:12

标签: javascript node.js express reactjs

我在ReactJs中有一个http put函数,看起来像这个

UpdateItem: function(_id) {
      var input = this.refs.myInput;
        $.ajax({
  url: 'http://localhost:3000/update/' + _id,
  type: 'PUT',
  data:input,
  cache: false,
  success: function(result) {
    console.log(data);
      window.location.reload();
  }
});
          }

它需要一个输入,它应该发送带有请求的新值,但它永远不会发送

<input ref="myInput" type="number" name="quantity" min="1" max="10" defaultValue={item.quantity}  className="form-control"/>

当我看到控制台时,req.body显示了这个[object Object],我在节点中的put函数看起来像这样

app.put('/update/:_id', function(req, res) {
      console.log(req.params);
      console.log("your req is" +req.body);
      Cart.findByIdAndUpdate(req.params.id, { quantity: req.body.quantity }, function(err, product) {
  if (err) throw err;
  console.log(product);

  console.log(product);
});
     });

关于问题可能是什么的任何想法?

2 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为您正在尝试将字符串与对象连接起来。这就是+ - 符号在console.log中的作用。

您会注意到console.log(req.body)console.log("your req is")都可以单独使用,但console.log("your req is" + req.body)会给您错误的输出。

要解决这个问题,要么做两个单独的输出,要么使用它:

console.log("your req is", req.body);

现在,您将获得要在控制台中输出的字符串和Object属性。

演示:

(检查控制台中的输出)

var person = {name: "Bob", sirname: "Smith", age: 34};

console.log("The person data is: ", person); //right
console.log("The person data is: " + person); //wrong

答案 1 :(得分:0)

它只是说你的“req.body”是某种对象,应该是它。

如果你想看看里面是什么,这可以很方便:

console.log(JSON.stringify(req.body))