我在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);
});
});
关于问题可能是什么的任何想法?
答案 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))