Sequelize setter不起作用

时间:2014-10-20 20:45:19

标签: javascript node.js sequelize.js

我拼命试图调用一个似乎不存在的简单的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 [object SequelizeInstance]没有方法'setStatus'

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

Setters实现为javascript setters

这意味着当您分配属性

时将调用setter
process.status = 'done' // this invokes the setter