在Sails / Waterline软删除

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

//Hard Delete User.destroy({id:userId}, function(err, res){ //Hard Delete }) 

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

 updateUser.isDeleted = true; User.update({id:userId}, updateUser, function(err, res){ Update project }) 

并在获取文件时,我正在做一个检查如果isDeleted – 是否真实。
是否有任何由Sails或Waterline提供的内置function,我可以configuration执行软删除,并避免更新,然后基于isDeleted标志提取?

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

模型:鹦鹉,js

 module.exports = { attributes: { // eg, "Polly" name: { type: 'string' }, // eg, 3.26 wingspan: { type: 'float', required: true }, // eg, "cm" wingspanUnits: { type: 'string', enum: ['cm', 'in', 'm', 'mm'], defaultsTo: 'cm' }, // eg, [{...}, {...}, ...] knownDialects: { collection: 'Dialect' }, isDeleted:{ type:'boolean' } }, beforeFind: function(values, cb) { values.isDeleted = false; cb(); } } 

ParrotController.js

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

帆内没有软删除function,我怀疑会有。

这是一个挑战:为什么不写自己的? 水线支持类方法 ! 当然,你必须为每个模型做一个或者创build一个服务……这可能会更有效。