【问题标题】:Manipulating data before save with geddy在使用 geddy 保存之前操作数据
【发布时间】:2013-05-16 19:02:59
【问题描述】:

我的应用程序中有一些场景需要在保存数据之前对其进行操作。

我有 CakePHP 背景,所以我通常会在模型的 beforeSave 方法中执行此操作。

我可以在 geddy 中的模型中做任何等效的事情吗?

【问题讨论】:

    标签: node.js geddy


    【解决方案1】:

    查看Model events

    基础模型“构造函数”和模型实例都是 事件发射器。创建/更新/删除期间的发出事件 模型实例的生命周期。在所有情况下,明文命名的事件都是 在有问题的事件和带有'before'前缀的事件之后触发 当然发生在之前。

    模型的“构造函数”发出以下事件:

    • 创建前
    • 创建
    • 验证前
    • 验证
    • 更新前属性
    • 更新属性
    • beforeSave(新实例,单个和批量)
    • 保存(新实例,单个和批量)
    • beforeUpdate(现有单实例,批量更新)
    • 更新(现有单个实例,批量更新)
    • beforeRemove 删除

    例如:

    var MyModel = function () { ... };
    
    MyModel = geddy.model.register('MyModel', MyModel);
    
    MyModel.on('beforeSave', function(data){
       console.log(data);
    })
    

    【讨论】:

    • 不确定我是否在我的模型中正确实现了这一点,因为它会导致 User.on('beforeSave', function(){ ^ TypeError: Object function () { this.defineProperties({ email: {type: 'string'}, password: {type: 'string'} }); } 没有方法'on'
    • @wiseguysonly 更新了我的答案。我不确定如何保存项目 - 所以在beforeSave 事件中尝试记录thisarguments 以查看您要操作的item 的位置。让我知道你的进展:)
    • 谢谢你的工作。我编辑了您的答案以将数据参数添加到匿名函数中。有了这个我就可以做 data.password 等
    • 伟大的@wiseguysonly :) 很高兴帮助 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多