【问题标题】:Sequelize setter does not work续集设置器不起作用
【发布时间】:2014-10-21 15:16:09
【问题描述】:

我拼命尝试调用一个似乎不存在的简单 setter 方法。

这是我的模型定义:

var Process = Sequelize.MySql.define('Process',{
name: Sequelize.STRING,
description: Sequelize.TEXT,
duration: Sequelize.BIGINT,
status: {
    type: Sequelize.ENUM(pstatus.unassigned,pstatus.assigned,pstatus.inprocess,pstatus.stopped,pstatus.finished),
    defaultValue: pstatus.unassigned,
    set: function(v){
        console.log('Prozess status updated')
        if(!pstatus.hasOwnProperty(v)){
            return
        }

        this.setDataValue('status',v)
    }
}
}

每次调用 process.setStatus(pStatus.inprocess) 都会返回一个 TypeError

可能未处理的 TypeError:对象 [object SequelizeInstance] 没有方法 'setStatus'

我在这里错过了什么?

【问题讨论】:

    标签: javascript node.js sequelize.js


    【解决方案1】:

    Setter 被实现为javascript setters

    这意味着当你分配给属性时会调用setter

    process.status = 'done' // this invokes the setter
    

    【讨论】:

      猜你喜欢
      • 2014-07-01
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多