【问题标题】:Reactjs req.body shows [object Object]Reactjs req.body 显示 [object Object]
【发布时间】:2016-03-10 15:14:12
【问题描述】:

我在 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);
});
     });

对可能出现的问题有什么想法吗?

【问题讨论】:

    标签: javascript node.js express reactjs


    【解决方案1】:

    发生这种情况是因为您试图将字符串与对象连接起来。这就是+-sign 在您的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);
    

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

    演示:

    (检查控制台中的输出)

    var person = {name: "Bob", sirname: "Smith", age: 34};
    
    console.log("The person data is: ", person); //right
    console.log("The person data is: " + person); //wrong

    【讨论】:

      【解决方案2】:

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

      如果你想看看里面有什么,这很方便:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-06-17
        • 1970-01-01
        • 1970-01-01
        • 2023-02-23
        • 1970-01-01
        • 2018-04-28
        • 2020-04-08
        相关资源
        最近更新 更多