更改CreatedAt / UpdateAt属性的字段名称

时间:2014-07-03 18:30:25

标签: node.js sails.js waterline

我正在尝试在SailsJS中建模现有的MSSQL表。不出所料,现有数据库中的表具有与SailsJS框架生成的类似的createdAt和updatedAt列。

有没有办法将SailsJS框架生成的属性值分配给我定义的属性?例如:

attributes: {
    ...
    creationDate:{
        columnName:'cre_dt',
        type:'datetime',
        defaultsTo: this.createdAt
    }
    ...
}

3 个答案:

答案 0 :(得分:22)

不,但您可以完全关闭自动生成的属性并使用您自己的属性:

autoCreatedAt: false,
autoUpdatedAt: false,
attributes: {
    creationDate: {
        columnName: 'cre_dt',
        type: 'datetime',
        defaultsTo: function() {return new Date();}
    },
    updateDate: {
        columnName: 'upd_dt',
        type: 'datetime',
        defaultsTo: function() {return new Date();}
    }
},
//Resonsible for actually updating the 'updateDate' property.
beforeValidate:function(values,next) {
    values.updateDate= new Date();
    next();
}

请参阅Waterline options doc

答案 1 :(得分:16)

您可以按以下方式重新映射:

var Game = Parse.Object.extend("Game"); 
var query = new Parse.Query(Game);
query.find({
success: function(results) {
  $scope.$apply(function() {
  $scope.games = results.map(function(obj) {
    return {points: obj.get("points"), gameDate: obj.get("gameDate"),  parseObject: obj};
  });
});
},

error: function(error) {
  console.log(error);
} 

答案 2 :(得分:1)

现在可以使用autoCreatedAtautoUpdatedAt为这些字段设置自定义名称,如http://sailsjs.com/documentation/concepts/models-and-orm/model-settings#?autocreatedat所述

  

如果设置为字符串,则该字符串将用作自定义   createdAt属性的字段/列名称。