【问题标题】:Sequelize: Modify output of date timestamp using GettersSequelize:使用 Getters 修改日期时间戳的输出
【发布时间】:2018-01-24 01:25:44
【问题描述】:

每次从数据库中选择我的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);
});

【问题讨论】:

    标签: javascript sql node.js postgresql sequelize.js


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-06
      • 2014-12-04
      • 1970-01-01
      相关资源
      最近更新 更多