我的Meteor应用程序中有这个简单的Iron-router路由,每当有任何用户需要注销应用程序时我都会使用它,尽管每次调用此路由时都会出现以下错误。有人可以告诉我我在做错了什么/在这里失踪了吗?感谢
小调,Meteor.logout不会返回任何错误
Router.route('/logout', function(){
Meteor.logout(function(err){
if(err){
console.log('Error Logging out: '+ err);
}
this.redirect('home');
});
});
错误:
Route dispatch never rendered. Did you forget to call this.next() in an onBeforeAction?
Exception in delivering result of invoking 'logout': TypeError: undefined is not a function
at http://localhost:3000/both/router/routes.js?8871acf5e06150f7af89862f68c245a05fe13db8:110:12
at http://localhost:3000/packages/accounts-base.js?7c29db5c21a76726509bb6bb2a68a2b4b1ecf657:674:19
答案 0 :(得分:4)
Meteor.logout回调中的范围与Router.route回调中的范围不同。这就是为什么你需要将Router.route的范围分配给变量self
然后在Meteor.logout回调中使用它。
Router.route('/logout', function(){
var self = this;
Meteor.logout(function(err){
if(err){
console.log('Error Logging out: '+ err);
}
self.redirect('home');
});
});