我在我的应用程序中使用与此类似的模型,并且要求是在创建记录之后,我想用新创建的记录ID更新所有者。
所以我使用 afterCreate 方法做同样的事情,但奇怪的行为是 afterCreate 方法在极少数情况下不会被调用。我在手动创建记录时也有相同的行为,也在mocha单元测试中。 注意:这种情况仅在极少数情况下发生。那么,有没有最好的做法,或者我做错了什么?
我也为此提供了解决方案。我所做的是,而不是使用 afterCreate 我在控制器操作中做同样的事情。但只是期待知道为什么会失败?
**sample.js**
module.exports = {
schema: true,
attributes: {
name: {
type: 'string',
required: true
},
owner : {
model: 'sample'
}
},
afterCreate : function(values, next) {
sample.update({id:values.id},
{owner: values.id})
.exec(function(err, result){
if(err){
next(err);
}
next();
});
}
};
答案 0 :(得分:1)
您的错误在这里:
if(err) {
next(err);
}
应该是:
if(err) {
return next(err);
}
在此处未使用return
,您将两次调用next()
,这可能会导致您的问题。