删除路由,.remove 不是函数?

Delete route, .remove not a function?

我创建了一个删除产品的路径,但是当我尝试 运行 它时,我收到错误 .remove is not a function。我不知道为什么会发生这种情况或如何解决它,我只看过没有发现任何有用的东西。我的路线如下所示:

orderRouter.delete(
    '/:id',
    isAuth,
    isAdmin,
    expressAsyncHandler(async (req, res) => {
        const order = await Orderline.findByPk(req.params.id);
        if (order) {
            const deletedOrder = await order.remove();
            res.send({ message: 'Order Deleted', product: deletedOrder });
        } else {
            res.status(404).send({ message: 'Order Not Found' });
        }
    })
);

非常感谢guidance/help。

在 Sequelize ORM 中,Instance.remove() 不是函数。请改用 Instance.destroy()

参考文档here

因此您的固定代码为:

orderRouter.delete(
    '/:id',
    isAuth,
    isAdmin,
    expressAsyncHandler(async (req, res) => {
        const order = await Orderline.findByPk(req.params.id);
        if (order) {
            const deletedOrder = await order.destroy();
            res.send({ message: 'Order Deleted', product: deletedOrder });
        } else {
            res.status(404).send({ message: 'Order Not Found' });
        }
    })
);