node.js - 如何更新订单状态?
问题描述
我正在尝试创建电子商务网站。在哪个管理员更新订单状态。在某处我找到了逻辑,但我无法在邮递员中更新订单状态,也无法为此构建前端。有人请帮忙解决这个问题吗?
exports.updateStatus = (req, res) => {
Order.updateOne(
{ _id: req.body.orderId },
{ set: { status: req.body.status } },
{ new: true },
(err, order) => {
if (err) {
return res.status(400).json({error: "Cannot update order status"});
}
res.json(order);
});
};
解决方案
基于 req.body 使用req.body._id
而不是 req.body.orderId 并且不需要使用set
并且{new : true}
将返回修改后的文档而不是原始文档。updateOne
没有这个选项。如果您需要响应作为更新的文档使用findOneAndUpdate
exports.updateStatus = (req, res) => {
Order.findOneAndUpdate(
{ _id: req.body._id},
{ status: req.body.status } ,
{ new: true },
(err, order) => {
if (err) {
return res.status(400).json({error: "Cannot update order status"});
}
res.json(order);
});
};
推荐阅读
- javascript - 如何将第二个变量传递给 Vue Laravel 组件并默认设置为输入变量?
- python - 使用 Python 计算多索引数据透视表的列中的频率
- azure - 是否可以在特定资源组 ID 或名称上创建 Azure 策略
- javascript - 组件/元素没有正确放置到彼此并影响另一个元素
- reactjs - 我的反应状态在函数中不起作用,但在渲染时起作用
- linux - 是否可以绑定
在 cshell 中杀死整行? - git - Gitflow /删除每个分支中的目录
- python - 如何在多标签分类问题中将自定义权重传递给 scikit_learn 包装器(例如 KerasClassifier)
- python - 用于神经网络训练的掩码
- appium - 带有 Selenium Grid 的 Appium 导致 - GridException:无法从请求中提取功能