为了回答这个问题(见上面的评论):
总的来说,你所做的大部分都是正确的。你想把
operation hooks
在
common/models/my-model.js
文件,但该上下文对象(
ctx
)将根据挂钩进行更改(请阅读上面的链接文档)。
在您的情况下,要创建新模型,您需要访问
app
关闭当前模型,然后执行
create()
,但一定要将
next()
callback在创建调用的回调中:
//this observer will be activated whenever the user is edited or created
User.observe('after save', function(ctx, next) {
var theUserObject = ctx.instance;
if(ctx.isNewInstance){
User.app.models.anotherModel.create({name: theUserObject.name, id: theUserObject.ID}, function(err, newInstance) {
next(err);
});
} else {
User.app.models.anotherModel.find({ /* some criteria */ }, function(err, instance) {
if (err) { return next(err); }
if (instance) {
instance.updateAttributes({name: theUserObject.name, id: theUserObject.ID}, function(err) {
next(err);
});
}
});
}
});