更新 MongoDB 中的数字时出现错误请求错误
Getting bad request error when updating a number in MongoDB
我试图更新存储在 mongodb 中的单个元素(这是一个数字)。
这是我发送给数据库的请求:
const handleDelivered = (num) =>{
const total = service.quantity;
const final = parseInt(total) + num;
console.log(total,final);
const url = `http://localhost:5000/services/${idOfService}`;
fetch(url,{
method :'PUT',
headers :{
'content-type': 'application/json',
},
body : JSON.stringify(final)
})
.then(res => res.json())
.then(product =>{
console.log(product);
})
}
MongoDB里面存储的数据是数组的一个对象。为了执行我尝试用 express 构建 API 的操作。
这是 API
的代码
app.put('/services/:id', async(req,res)=>{
const id = req.params.id;
const filter = {_id : ObjectId(id)};
const options = { upsert: true };
const updatedData = req.body;
const updateDoc = {
$set: {
quantity : updatedData.quantity,
},
};
const result = await serviceCollection.updateOne(filter, updateDoc, options);
res.send(result);
});
每当我点击更新按钮时,它都会显示一条错误消息:
PUT(link)400 (bad request)
Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
这应该适合你:
在你请求正文中这样做:
body : JSON.stringify({quantity: final})
相反,将对象作为字符串发送:
res.send(result);
像这样作为 JSON 发送:
res.status(200).json(result);
为了让您的客户更好地捕捉到您的服务抛出的错误,请将闭包 catch
添加到提取中。
我试图更新存储在 mongodb 中的单个元素(这是一个数字)。 这是我发送给数据库的请求:
const handleDelivered = (num) =>{
const total = service.quantity;
const final = parseInt(total) + num;
console.log(total,final);
const url = `http://localhost:5000/services/${idOfService}`;
fetch(url,{
method :'PUT',
headers :{
'content-type': 'application/json',
},
body : JSON.stringify(final)
})
.then(res => res.json())
.then(product =>{
console.log(product);
})
}
MongoDB里面存储的数据是数组的一个对象。为了执行我尝试用 express 构建 API 的操作。 这是 API
的代码app.put('/services/:id', async(req,res)=>{
const id = req.params.id;
const filter = {_id : ObjectId(id)};
const options = { upsert: true };
const updatedData = req.body;
const updateDoc = {
$set: {
quantity : updatedData.quantity,
},
};
const result = await serviceCollection.updateOne(filter, updateDoc, options);
res.send(result);
});
每当我点击更新按钮时,它都会显示一条错误消息:
PUT(link)400 (bad request)
Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
这应该适合你:
在你请求正文中这样做:
body : JSON.stringify({quantity: final})
相反,将对象作为字符串发送:
res.send(result);
像这样作为 JSON 发送:
res.status(200).json(result);
为了让您的客户更好地捕捉到您的服务抛出的错误,请将闭包 catch
添加到提取中。