Node.js水线ORM – 生命周期callback – 在less数情况下,调用失败

我在我的应用程序中使用类似于这个模型,并且要求是在创buildlogging后,我想用新创build的loggingID更新所有者

所以我使用afterCreate方法来做同样的事情,但奇怪的行为是afterCreate方法不会在罕见的情况下被调用。 在手动创buildlogging时,我也有相同的行为,也是在摩卡单位testing中。 注意:这只在极less数情况下发生 。 那么,有没有最好的做法,或者我做错了什么?

我也有这个解决scheme以及..我所做的是,而不是使用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(); }); } }; 

你的错误在这里:

 if(err) { next(err); } 

应该:

 if(err) { return next(err); } 

通过在这里不使用return ,你正在调用next()两次,这可能导致你的问题。