Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Mongoose post-remove事件不会触发大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在我的模型中有这个代码

ContentscheR_510_11845@a.post( 'remove',function( item ) {
    index.deleteObject( item._id )
})

这是我的控制器中的内容:@H_197_10@

Content.find( { user: user,_id: contentId } )
.remove( function ( err,count ) {
    if ( err || count == 0 ) reject( new Error( "There was an error deleting that content from the stream." ) )

    resolve( "Item removed from stream" )
})

我希望当控制器中的函数运行时,模型中的函数应该发生.我可以在调试器中看到它根本不会触发.@H_197_10@

我正在使用“R_510_11845@ongoose”:“3.8.23”和“mongoose-q”:“0.0.16”.@H_197_10@

解决方法

删除事件(和其他中间件挂钩)不会在模型级方法上触发.如果您使用实例方法,例如:

Content.findOne({...},function(err,content){
    //... @R_262_10112@ever you need to do prior to removal ...
    content.remove(function(err){
         //content is removed,and the 'remove' pre/post events are emitted
    });
});

…您将能够删除内容实例并启动前/后删除事件处理程序.@H_197_10@

这样做的原因是为了使模型级方法按预期工作,实例必须被提取并加载到内存中,并且在加载时浏览Mongoose对模型所做的所有糖.通过by,这个问题不是唯一的删除,任何模型级方法都会表现出相同的问题(例如,Content.updatE).@H_197_10@

这是Mongoose的一个已知的怪癖(想要更好的词).有关更多信息,请查看Mongoose #1241.@H_197_10@

大佬总结

以上是大佬教程为你收集整理的node.js – Mongoose post-remove事件不会触发全部内容,希望文章能够帮你解决node.js – Mongoose post-remove事件不会触发所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。