Sails.js modèle d'insérer ou de mettre à jour des enregistrements

Essayé Sails.js et je suis en train d'écrire une application que l'importation des données à partir d'un tiers de l'API et l'enregistre dans une table MySQL. Fondamentalement, je suis en train de synchroniser les données sur mon app pour de plus amples analyse, la mise à jour de mon dossier ou la création de nouveaux records en tant que de besoin.

J'ai regardé à travers les Voiles de l'API, et je vois des méthodes pour trouver, créer et mettre à jour des enregistrements, mais pas de méthode intégrée pour insérer/mettre à jour des enregistrements en fonction de la situation. Ai-je oublier quelque chose, ou ai-je besoin pour mettre en œuvre cette moi-même?

Si je mettre en place moi-même, personne ne sait d'un bon modèle de conception pour insérer/mettre à jour?

C'est ce que je pense qu'il pourrait ressembler à...

_.each(importedRecords, function(record){
  MyModel.find({id: record.id}).exec(function findCB(err, found){
    if(found.length){
      MyModel.update(record.id, task).exec(function(err, updated){
        if(err) { //returns if an error has occured, ie id doesn't exist.
          console.log(err);
        } else {
          console.log('Updated MyModel record '+updated[0].name);
        }
      });
    }else{
       MyModel.create(record).exec(function(err, created){
         if(err) { //returns if an error has occured, ie invoice_id doesn't exist.
           console.log(err);
         } else {
           console.log('Created client record '+created.name);
         }
       });
     }
   });
 });

Suis-je dans la bonne direction, ou est-il une solution plus élégante?

Aussi, je fais face à beaucoup de différents modèles de cette application, qui serait un moyen de recréer ce bloc de code, et dans chacun de mes modèles. Est il possible que je peux étendre le Modèle de base de l'objet à ajouter cette fonctionnalité pour tous les modèles.

Grâce,
Jean

OriginalL'auteur Critical Mash | 2014-09-19