node.js - node.js- 在 Sequelize 中获取先前的数据值
问题描述
我正在尝试在 Sequelize 中记录对 double 类型字段的更改。这是续集模型:
static initModel(sequelize: Sequelize.Sequelize): typeof payment {
salesOrderPayment.init({
id: {
autoIncrement: true,
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true
},
amount: {
type: DataTypes.DOUBLE,
allowNull: true,
get() {
return parseIntoFloat(this.getDataValue('amount'));
}
}
})
}
在 Postgres 中:金额字段具有 Numeric(19,4) 数据类型。
在 afterUpdate 钩子中,我这样做是为了检查更改:
if (instance.previous(attribute) === instance.getDataValue(attribute)) {
continue;
}
更新时,Sequelize 在持久化之前调用数量 getter 对其进行转换。所以在钩子中,前一个值的形式是:6000.0000,getDataValue 是 6000,'===' 对于 2 个相等的值返回 false。Sequelize 是否无论如何都要优雅地解决这个问题,因为可能会有更多的字段需要这种检查。
解决方案
推荐阅读
- mongodb - MongoDB仅在请求中存在时才查询不同的字段
- javascript - 使用回调参数获取匿名函数中的值
- vue.js - 如何将流类型与 CDN 包含的对象一起使用?
- php - MySQL:加入两个具有匹配行名的表
- c++ - 是否有推荐的“安全”方法来指定由常量标志值组成的位和弦?
- python - Pyplot 趋势线没有出现在散点图上,而是出现在它的右侧?
- r - 如何在R中没有for循环的情况下将一列与一系列相关的虚拟变量进行比较
- node.js - 如何获得对 IBM Watson Assistance 用户界面的信心?
- java - Web3j Android java Solidity 包装器错误
- c++ - C++,fstream,从文件中读取没有给出正确的结果