我相信这个问题之前已经被发现并解决了,但我遇到了麻烦,所以请温柔一点。我正在自学React/Node,并决定制作一个MERN CRUD系统。我对代码的更新部分有问题,我不知道如何修复它。目前(我可以根据需要更新),我的axios调用是:
axios.put('/api/items/' + selectComponent, {
Quantity: quantityInput.value
})
.then((response) => {
setItems(previous => previous.map((item) => {
if (item.Item === selectComponent) {
return { ...item, Quantity: response.data }
}
else {
return item
}
}))
})
.catch((error) => {
console.log(error)
});
MongoDB中条目的模式是
_id: String,
Item: String,
unit:String,
Quantity:Number,
Reorder: Number,
});
后端是:
const InvItem = mongoose.model('InventoryItems', schema);
app.get('/api/items/:Item', async (req, res) => {
try {
const item = await InvItem.findOneAndUpdate(
{ Item: req.params.Item },
);
if (!item) {
return res.status(404).send({ error: 'Item not found' });
}
res.send(item);
} catch (err) {
console.log(err);
res.status(500).send({ error: 'Internal server error' });
}
});
app.put('/api/items/:Item', async (req, res) => {
try {
const items = await InvItem.findOneAndUpdate(
{ Item: req.params.Item },
{ $inc: { Quantity: -quantity } },
{ new: true }
);
if (!items) {
return res.status(404).send({ error: 'Item not found' });
}
res.send(items);
} catch (err) {
console.log(err);
res.status(500).send({ error: 'Internal server error' });
}
});
任何我能想到的尝试总是返回AxiosError 500,我不知道我在做什么。温柔点,我是新来的....
1条答案
按热度按时间7rfyedvj1#
从外观上看,你的数量应该是从请求的主体中出来的。你可能需要改变
到