【问题标题】:how to soft delete using sequelize如何使用 sequelize 软删除
【发布时间】:2019-11-21 14:03:11
【问题描述】:

我有一个非常简单的模型,其中包含“已删除”列 (1/0)

module.exports = (sequelize, DataTypes) => {
    const User = sequelize.define('User', {
        name: {
            type: DataTypes.STRING,
            allowNull: false,
            required: true
        },
        deleted: {
            type: DataTypes.NUMBER,
            allowNull: false,
            required: true,
            defaultValue: 0,
        },
    });

    return User;
}

在我的路由器中列出所有用户

router.get('/users', (req, res) => {

    return models.User.findAll({where: {deleted: 0})
        .then(users => res.status(200).json(users))
});

有没有办法将 deleted = 0 定义为模型本身的一部分,这样我每次需要列出用户时都不必传递它?谢谢!

【问题讨论】:

标签: node.js sequelize.js


【解决方案1】:

您需要在模型中设置paranoid:true

const User = sequelize.define('User', {
        name: {
            type: DataTypes.STRING,
            allowNull: false,
            required: true
        },
        deleted: {
            type: DataTypes.NUMBER,
            allowNull: false,
            required: true,
            defaultValue: 0,
        },
    },{
       paranoid: true
    });

【讨论】:

  • 是的。这样做我不需要删除的密钥。谢谢!
猜你喜欢
  • 1970-01-01
  • 2023-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-08
  • 2011-07-05
  • 2020-05-20
  • 2016-03-27
相关资源
最近更新 更多