首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sails/Waterline中的软删除

Sails/Waterline中的软删除
EN

Stack Overflow用户
提问于 2014-12-02 14:16:38
回答 2查看 2.1K关注 0票数 5

尝试使用以下命令删除用户模型:

代码语言:javascript
复制
//Hard Delete    
User.destroy({id:userId}, function(err, res){  
  //Hard Delete
})  

我需要对用户模型进行软删除,并且当前在删除和更新文档时将标志isDeleted设置为true:

代码语言:javascript
复制
updateUser.isDeleted = true;
User.update({id:userId}, updateUser, function(err, res){
  Update project
})

在获取文档时,我正在检查isDeleted是否为真。

Sails或Waterline提供了什么内置功能,我可以配置它们来执行软删除,避免更新,然后再根据isDeleted标志取回?

EN

回答 2

Stack Overflow用户

发布于 2016-11-05 20:49:02

可以使用beforeFind()生命周期函数对软删除的记录进行过滤

型号: parrot,js

代码语言:javascript
复制
module.exports = {
    attributes: {
        // e.g., "Polly"
        name: {
            type: 'string'
        },

        // e.g., 3.26
        wingspan: {
            type: 'float',
            required: true
        },

        // e.g., "cm"
        wingspanUnits: {
            type: 'string',
            enum: ['cm', 'in', 'm', 'mm'],
            defaultsTo: 'cm'
        },

        // e.g., [{...}, {...}, ...]
        knownDialects: {
          collection: 'Dialect'
        },

        isDeleted:{
            type:'boolean'
        }
    },

    beforeFind: function(values, cb) {
        values.isDeleted = false;
        cb();
    }
}

ParrotController.js

代码语言:javascript
复制
module.exports = {

    // getting default parrots isDeleted = true
    list: function (req, res) {

        Parrot
        .find()
        .exec(function(err, parrots) {
            if(err) return res.send({ flag:false, data:[], message:"Error." });

            if(parrots && parrots.length){
                return res.send({ flag:true, data:parrots, message:"Success." });
            }
            else{
                return res.send({ flag:false, data:[], message:"Parrot list is empty." });
            }

        });

    }
};
票数 1
EN

Stack Overflow用户

发布于 2015-07-20 17:22:01

sails中没有内置的软删除功能,我对此表示怀疑。

这里有一个挑战:为什么不写你自己的?Waterline supports class methods!当然,您必须为每个模型执行此操作,或者创建一个服务...这可能更有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27243034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档