为什么我无法修改结果对象

exe*_*ook 3 sequelize.js

为什么sequelize等返回的对象findAll不能像常规对象一样修改?我检查它们是否被冻结或锁定,但Object.isFrozen()返回 false。它是否使用吸气剂而不是真实属性(我如何检查?)

到目前为止,我修改结果的唯一选择是JSON.parse(JSON.strigify(result))这样做可以,但会产生性能代价。

Ric*_*ado 5

您的实例具有 getter 和 setter 方法。您可以调用instance.get('field')或instance.set('field', value)。

但是,如果您尝试向模型动态添加新属性,则可以尝试创建属性类型:DataTypes.VIRTUAL。

DataTypes.VIRTUAL 属性是瞬态的,您可以使用它来自定义/添加您不希望保留到数据库的属性值。

http://docs.sequelizejs.com/en/v3/api/datatypes/#virtual