每次从数据库中选择时,我都需要将signup_at
时间戳转换为某种格式。
我想为此使用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);
});
答案 0 :(得分: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
。