2014-12-02 16 views
5

silmek:Yumuşak kullanarak bir kullanıcı modeli silmek çalışılıyor Yelken/Waterline

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

Ben yumuşak Kullanıcı modeline silip henüz bayrak silme ve güncelleme belge üzerinde true isDeleted ayarı yapmanız gerekir:

ve belge getirilirken bir kontrol yapıyorum Eğer isDeleted - true veya not.
Sails veya Waterline tarafından sağlanan, yumuşak bir silme gerçekleştirmek ve güncelleştirmeyi önlemek için yapılandırabildiğim herhangi bir In-built özelliği var mı ve isDeleted bayrağı temel alınarak getiriliyor mu?

+0

kullandığınız bu kadar kolay yapabilirsiniz papağan, js Bu çekme isteği https://github.com/balderdashy/waterline/pull/525'yi uygularsa uygulanır. – Meeker

cevap

0

Yelkenlere yerleşik bir yumuşak silme özelliği yok ve şüphelerim var.

İşte bir sorun: neden kendi yazmıyorsunuz? Waterline supports class methods! Tabi ki her model için bunu yapmak ya da daha etkili olabilecek bir hizmet yaratmak zorundasınız.

1

Eğer beforeFind() yumuşak silinen kayıtların

modeli filtre için yaşam döngüsü işlevini kullanabilirsiniz:

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

     }); 

    } 
}; 
+0

Bu resmi olarak yelkenliler tarafından uygulanmadı, değil mi? Çekme isteğinde yapılan bir özelliktir. – axius

İlgili konular