2017-01-16 1 views
0

J'ai essayé de mettre en œuvre un horodatage pour createdAt et mis à jour, mais je ne peux pas le faire fonctionner. Chaque fois qu'il renvoie l'erreur suivante: Anchor ne supporte pas encore les fonctions!Sails.js/Waterline - Modifier le createdAt et updatedAt renvoie une erreur: Anchor ne supporte pas les fonctions encore

En Entity.js:

module.exports = { 

    autoCreatedAt: 'created_ts', 
    autoUpdatedAt: 'updated_ts', 
    attributes: { 

     entity_name : { 
      type : 'string'  
     }, 
     creationDate: { 
      columnName: 'created_ts', 
      type: 'datetime', 
      defaultsTo: function() {return new Date().getTime;} 
     }, 
     updateDate: { 
      columnName: 'updated_ts', 
      type: 'datetime', 
      defaultsTo: function() {return new Date().getTime;} 
     }, 
     toJSON: function() { 
      var obj = this.toObject(); 
      delete obj.createdAt; 
      delete obj.updatedAt; 
      return obj; 
     } 

    }, 
    beforeUpdate:function(values,next) { 
     values.updateDate = new Date().getTime; 
     next(); 
    } 

}; 

Répondre

0

Je peux voir 2 erreurs ici.

  1. getTime est une fonction, donc si vous voulez l'utiliser, vous devez l'utiliser comme ça new Date().getTime() mais cette valeur si vous êtes intéressé est tout simplement new Date()

  2. méthode toJSON ne devrait pas être dans les attributs . Et le nom des attributs supprimés n'est pas correct pour le moment.

donc votre code après corrections:

module.exports = { 

    autoCreatedAt: 'created_ts', 
    autoUpdatedAt: 'updated_ts', 
    attributes: { 

     entity_name : { 
      type : 'string'  
     }, 
     creationDate: { 
      columnName: 'created_ts', 
      type: 'datetime', 
      defaultsTo: function() {return new Date();} 
     }, 
     updateDate: { 
      columnName: 'updated_ts', 
      type: 'datetime', 
      defaultsTo: function() {return new Date();} 
     } 
    }, 
    beforeUpdate:function(values,next) { 
     values.updateDate = new Date(); 
     next(); 
    }, 
    toJSON: function() { 
     var obj = this.toObject(); 
     delete obj.creationDate; 
     delete obj.updateDate; 
     return obj; 
    } 

};