2017-08-16 11 views
3

signup_atタイムスタンプをデータベースから選択するたびに特定の形式に変換する必要があります。Sequelize:Getterを使用して日付タイムスタンプの出力を変更します。

このためにゲッターを使用しますが、変更されたデータが返されていないようです。データベースに格納されている同じ日付オブジェクトを引き続き返します。

var moment = require("moment"); 

var Referral = sequelize.define("referral", { 
    id: { 
     allowNull: false, 
     type: DataTypes.CHAR(24), 
     unique: true, 
     primaryKey: true 
    }, 
    active: { 
     allowNull: false, 
     type: DataTypes.BOOLEAN, 
     defaultValue: true 
    }, 
    name: { 
     allowNull: true, 
     type: DataTypes.STRING 
    }, 
    method: { 
     allowNull: true, 
     type: DataTypes.STRING 
    }, 
    signup_at: { 
     allowNull: false, 
     type: DataTypes.DATE, 
     get: function() { 
     return moment(this.getDataValue("signup_at")).format("MM/DD/YYYY"); 
     } 
    } 
}); 


Referral.findAll({ 
where: { 
    active: true 
}, 
raw: true 
}).then(function(referrals) { 
    console.log(referrals); 
}); 

答えて

1

次のコード

Referral.findAll({ 
    where: { 
     active: true 
    }, 
    raw: false 
}).then(function (referrals) { 
    referrals.forEach(function (referral, index, array) { 
     var value = referral.get(); 
     console.log(value); 
    }); 
}); 

を試してみてくださいraw = trueはgetter関数を使用することはありませんようです。

rawをfalseにして、getを明示的に呼び出すことがあります。

関連する問題