Reactjs req.body shows [object Object]

Reactjs req.body shows [object Object]

本文关键字:object Object shows req body Reactjs      更新时间:2023-09-26

>我在 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 显示这个 [对象对象],我在节点中的 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);
});
     });

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

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

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

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

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