首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在流星应用上用铁路由器和onBeforeAction重定向

在流星应用上用铁路由器和onBeforeAction重定向
EN

Stack Overflow用户
提问于 2017-02-22 15:52:47
回答 1查看 264关注 0票数 0

我有一个流星应用程序和软件包iron-router,我试图阻止所有的页面,如果用户没有连接,除了fews页面。如果没有具体说明,我们就进入登陆页面。所以在router.js文件中,我有:

代码语言:javascript
代码运行次数:0
运行
复制
Router.onBeforeAction(function() {
    if (!Meteor.userId()) { 
        Router.go('login');
    } else {
    this.next();
    }
}, {
except: [
    "login", "landing", "register", "forgotPassword" 
]
});

Router.route('/', function () {
    Router.go('landing');
});

但是当我使用localhost:3000/时,我被重定向到登录页面,而不是登陆页面。

如果我删除了onBeforeAction函数,我将重定向到登陆页面。所以这两个函数肯定有问题,但我不知道在哪里。也许我需要在例外情况下精确说明"/“,但它不起作用。你有什么主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-22 18:44:36

您也需要在异常中定义路由'/',否则这将被onBeforeAction捕获。

尝试重新定义如下

代码语言:javascript
代码运行次数:0
运行
复制
Router.onBeforeAction(function() {
    if (!Meteor.userId()) { 
        Router.go('login');
    } else {
    this.next();
    }
}, {
except: [
    "default", "login", "landing", "register", "forgotPassword" 
]
});

Router.route('/', function () {
    Router.go('landing');
}, { 
    name: "default"
} );

在这种情况下,您可以命名路由,然后将其添加到异常列表中。

请参阅http://iron-meteor.github.io/iron-router/#named-routes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42396259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档