陨石路线onBeforeAction

时间:2015-03-29 14:05:38

标签: meteor iron-router

我的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

1 个答案:

答案 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');
  });
});