使用node.js sequelize和挂钩实现触发器
我正在尝试创建一个钩子,在为记录创建主键之后应该调用该钩子。我试图使用插入的列的组合生成一个数字,包括主键。实例钩子似乎被调用了,而全局钩子却没有被调用,即使我看到钩子被调用,字段仍然返回null:使用node.js sequelize和挂钩实现触发器,node.js,triggers,sequelize.js,Node.js,Triggers,Sequelize.js,我正在尝试创建一个钩子,在为记录创建主键之后应该调用该钩子。我试图使用插入的列的组合生成一个数字,包括主键。实例钩子似乎被调用了,而全局钩子却没有被调用,即使我看到钩子被调用,字段仍然返回null: module.exports = function(sequelize, DataTypes) { var store = sequelize.define('store', { storenumber: DataTypes.STRING(30), //remove stores
module.exports = function(sequelize, DataTypes) {
var store = sequelize.define('store', {
storenumber: DataTypes.STRING(30), //remove
storespecificationid: DataTypes.INTEGER,
storetypeid: DataTypes.INTEGER,
storename: DataTypes.STRING(20), //remove
address: DataTypes.STRING(30),
city: DataTypes.STRING(30),
state: DataTypes.STRING(30),
zipcode: DataTypes.STRING(30)
}, {
classMethods: {
associate: function(models) {
// associations can be defined here
},
hooks: {
/*this is not getting called*/
afterCreate: function(store){
let strnumber = store.storetypeid + store.storespecificationid + store.id;
store.updateAttributes({ storenumber: strnumber });
}
}
}
});
/*
This seems to be called
store.afterCreate(function(store) {
let strnumber = store.storetypeid + store.storespecificationid + store.id;
store.updateAttributes({ storenumber: strnumber });
});
*/
return store;
};
有人能解释一下我做错了什么吗?我想你有一个额外的对象定义类方法 尝试下面的模式
module.exports = function(sequelize, DataTypes) {
var store = sequelize.define('store', {
storenumber: DataTypes.STRING(30), //remove
storespecificationid: DataTypes.INTEGER,
storetypeid: DataTypes.INTEGER,
storename: DataTypes.STRING(20), //remove
address: DataTypes.STRING(30),
city: DataTypes.STRING(30),
state: DataTypes.STRING(30),
zipcode: DataTypes.STRING(30)
}, {
associate: function(models) {
// associations can be defined here
},
hooks: {
/*this is not getting called*/
afterCreate: function(store){
let strnumber = store.storetypeid + store.storespecificationid + store.id;
store.updateAttributes({ storenumber: strnumber });
}
}
});