尝试使用以下命令删除用户模型:
//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提供了什么内置功能,我可以配置它们来执行软删除,避免更新,然后再根据isDeleted标志取回?
发布于 2016-11-05 20:49:02
可以使用beforeFind()生命周期函数对软删除的记录进行过滤
型号: parrot,js
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
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." });
}
});
}
};发布于 2015-07-20 17:22:01
sails中没有内置的软删除功能,我对此表示怀疑。
这里有一个挑战:为什么不写你自己的?Waterline supports class methods!当然,您必须为每个模型执行此操作,或者创建一个服务...这可能更有效。
https://stackoverflow.com/questions/27243034
复制相似问题