2017-01-16 6 views
0

createdAt에 대한 타임 스탬프를 구현하고 업데이트하려고했지만 작동하지 못합니다. 매번 다음 오류가 발생합니다 : Anchor는 아직 기능을 지원하지 않습니다! Entity.js에서Sails.js/Waterline - createdAt를 수정하고 updatedAt가 오류를 throw합니다. 앵커가 아직 함수를 지원하지 않습니다.

:

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(); 
    } 

}; 

답변

0

여기이 오류를 볼 수 있습니다.

  1. getTime

    당신이 그것을 사용하려는 경우 당신이 new Date().getTime()처럼 사용하지만 당신이에 관심이 경우 값에 new Date()

  2. 단순히 속성에 안 방법 toJSON입니다해야 있도록하는 기능입니다 . 삭제 된 애트리뷰트의 이름이 올바르지 않습니다. 수정 후

그래서 코드 :

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; 
    } 

};