2014-12-02 5 views
5

में शीतल को नष्ट का उपयोग कर एक उपयोगकर्ता मॉडल को हटा की कोशिश:पाल/Waterline

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

मैं एक करने की ज़रूरत नरम उपयोगकर्ता मॉडल पर हटा सकते हैं और वर्तमान में एक झंडा हटाने और अद्यतन करने के दस्तावेज़ पर सत्य पर isDeleted की स्थापना:

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

और दस्तावेज़ लाने के दौरान मैं एक चेक कर रहा हूं यदि हटाया गया है - सत्य या नहीं।
क्या सेल या वाटरलाइन द्वारा प्रदान की गई कोई भी अंतर्निहित सुविधा है जिसे मैं सॉफ्ट डिलीट करने के लिए कॉन्फ़िगर कर सकता हूं और अद्यतन से बचने और फिर हटाए गए ध्वज के आधार पर लाने के लिए कॉन्फ़िगर कर सकता हूं?

+0

आप इस आसान उपयोग कर सकते हैं यह पुल अनुरोध https://github.com/balderdashy/waterline/pull/525 अगर वे इसे लागू करते हैं। – Meeker

उत्तर

0

सेल में निर्मित कोई सॉफ्ट-डिलीट सुविधा नहीं है, और मुझे संदेह है कि वहां होगा।

यहां एक चुनौती है: अपना खुद का लेखन क्यों न करें? Waterline supports class methods! बेशक आपको इसे प्रत्येक मॉडल के लिए करना होगा या एक सेवा बनाना होगा ... जो और भी प्रभावी हो सकता है।

1

आप beforeFind() नरम हटाए गए रिकॉर्ड

मॉडल के फिल्टर के लिए जीवन चक्र समारोह का उपयोग कर सकते हैं: तोता, जे एस

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

यह आधिकारिक रूप से पाल, कठोरता द्वारा लागू नहीं किया गया है? यह एक पुल अनुरोध में बनाई गई एक विशेषता है। – axius