水线生命周期回调未被调用
Waterline Lifecycle Callbacks not get invoked
我目前 运行 Sails.js v. 0.11.0 和 Waterline v. 0.10.0b.
我有一个带有两个生命周期回调的用户模型,当我销毁用户时它们不会被调用。我尝试了 user.destroy()
以及 User.destroy(id)
。我应该以某种方式显式调用那些 afterDestroy
回调,还是应该在某处通过设置激活它们?我的数据库是 MySQL via sails-mysql。任何帮助将不胜感激!
用户模型
module.exports = {
tableName: 'user',
attributes: {
name: {
type: 'string',
required: true
},
lastName: {
type: 'string',
required: true
},
...
beforeDestroy: function(destroyedRecord, next) {
console.log('!!!!!destroyedRecord', destroyedRecord);
next();
},
afterDestroy: function(destroyedRecord, next) {
console.log('!!!!!destroyedRecord', destroyedRecord);
next();
},
toJSON: function () {
var obj = this.toObject();
delete obj.password;
return obj;
}
},
getFullName: function (user) {
return user.name + ' ' + user.lastName;
}
};
删除函数
remove: function (req, res, next) {
var id = req.param('id');
User.findOne({'id' : id}).then(function(user){
user.destroy();
res.send(200);
}).catch(function(err){
console.log(err);
res.send(400);
});
回调在属性之外,请注意,您可以将全名放在属性内,如下所示。
module.exports = {
tableName: 'user',
attributes: {
name: {
type: 'string',
required: true
},
lastName: {
type: 'string',
required: true
},
fullName: function () {
return this.name + ' ' + this.lastName;
}
},
beforeDestroy: function(destroyedRecord, next) {
console.log('!!!!!destroyedRecord', destroyedRecord);
next();
},
afterDestroy: function(destroyedRecord, next) {
console.log('!!!!!destroyedRecord', destroyedRecord);
next();
},
toJSON: function () {
var obj = this.toObject();
delete obj.password;
return obj;
}
};
我目前 运行 Sails.js v. 0.11.0 和 Waterline v. 0.10.0b.
我有一个带有两个生命周期回调的用户模型,当我销毁用户时它们不会被调用。我尝试了 user.destroy()
以及 User.destroy(id)
。我应该以某种方式显式调用那些 afterDestroy
回调,还是应该在某处通过设置激活它们?我的数据库是 MySQL via sails-mysql。任何帮助将不胜感激!
用户模型
module.exports = {
tableName: 'user',
attributes: {
name: {
type: 'string',
required: true
},
lastName: {
type: 'string',
required: true
},
...
beforeDestroy: function(destroyedRecord, next) {
console.log('!!!!!destroyedRecord', destroyedRecord);
next();
},
afterDestroy: function(destroyedRecord, next) {
console.log('!!!!!destroyedRecord', destroyedRecord);
next();
},
toJSON: function () {
var obj = this.toObject();
delete obj.password;
return obj;
}
},
getFullName: function (user) {
return user.name + ' ' + user.lastName;
}
};
删除函数
remove: function (req, res, next) {
var id = req.param('id');
User.findOne({'id' : id}).then(function(user){
user.destroy();
res.send(200);
}).catch(function(err){
console.log(err);
res.send(400);
});
回调在属性之外,请注意,您可以将全名放在属性内,如下所示。
module.exports = {
tableName: 'user',
attributes: {
name: {
type: 'string',
required: true
},
lastName: {
type: 'string',
required: true
},
fullName: function () {
return this.name + ' ' + this.lastName;
}
},
beforeDestroy: function(destroyedRecord, next) {
console.log('!!!!!destroyedRecord', destroyedRecord);
next();
},
afterDestroy: function(destroyedRecord, next) {
console.log('!!!!!destroyedRecord', destroyedRecord);
next();
},
toJSON: function () {
var obj = this.toObject();
delete obj.password;
return obj;
}
};