首页 > 解决方案 > 如何更新订单状态?

问题描述

我正在尝试创建电子商务网站。在哪个管理员更新订单状态。在某处我找到了逻辑,但我无法在邮递员中更新订单状态,也无法为此构建前端。有人请帮忙解决这个问题吗?

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);
    });
};

标签: node.jsreactjsexpressmongoose

解决方案


基于 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);
    });
};

推荐阅读