Javascript Sequelize:使用getter修改日期时间戳的输出
每次从数据库中选择时,我需要将时间戳处的注册转换为特定格式Javascript Sequelize:使用getter修改日期时间戳的输出,javascript,sql,node.js,postgresql,sequelize.js,Javascript,Sql,Node.js,Postgresql,Sequelize.js,每次从数据库中选择时,我需要将时间戳处的注册转换为特定格式 var moment = require("moment"); var Referral = sequelize.define("referral", { id: { allowNull: false, type: DataTypes.CHAR(24), unique: true, primaryKey: true }, active: { allow
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);
});
我想为此使用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);
});
请尝试以下代码
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