2014-12-02 9 views
5

Der Versuch, ein Benutzermodell löschenWeiche in Segel/Wasserlinie löschen

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

und beim Abrufen von Dokumenten mache ich einen Check Wenn isDeleted - wahr oder nicht.
Gibt es eine integrierte Funktion, die von Sails oder Waterline zur Verfügung gestellt wird, die ich konfigurieren kann, um ein sanftes Löschen durchzuführen und das Aktualisieren und Abrufen basierend auf isDeleted Flag zu vermeiden?

+0

Sie diese einfach tun können, mit Diese Pull-Anfrage https://github.com/balderdashy/waterline/pull/525, wenn sie es umgesetzt bekommen. – Meeker

Antwort

0

Es gibt keine Soft-Delete-Funktion in Segel eingebaut, und ich bezweifle, dass es sein wird.

Hier ist eine Herausforderung: Warum nicht Ihre eigene schreiben? Waterline supports class methods! Natürlich müssten Sie das für jedes Modell tun oder einen Service erstellen ... der vielleicht noch effektiver ist.

1

können Sie before() Lebenszyklus-Funktion für Filter aus weichem gelöschten Datensätze

Modell verwenden: Papagei, 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." }); 
      } 

     }); 

    } 
}; 
+0

Dies wird nicht offiziell von Segeln umgesetzt, richtig? Dies ist eine Funktion, die in einer Pull-Anforderung ausgeführt wird. – axius

Verwandte Themen