AngularJS:ngRoute导致过多的重定向错误?

时间:2015-10-20 07:38:28

标签: angularjs express mean-stack ngroute

的index.html:

<body ng-app="myApp">
    <div ng-controller="MainController">
        ... {{ title }} ...
            <div class="collapse navbar-collapse">
                <ul class="nav navbar-nav">
                    <li><a href="#/register" ng-hide="authenticated">Register</a></li>
                    <li><a href="#/login" ng-click="login">Login</a></li>
                    <li><a href="#" ng-click="logout">Logout</a></li>
                </ul>
            </div>
        ...
        <div ng-view></div>
    </div>
</body>

省略缩短html。 MainController只设置$ scope.title =“我的应用程序”

在我的角度模块中,我使用ngRoute并实现路由:

app.config(function($routeProvider)
{
    $routeProvider 
    .when('/',
    {
        controller: 'MainController',
        templateUrl: 'main.html'
    })
    .when('/login',
    {
        controller: 'AuthenticationController',
        templateUrl: 'login.html'
    })
    .when('/register',
    {
        controller: 'AuthenticationController',
        templateUrl: 'register.html' 
    });
});

我的AuthenticationController只定义了登录和注册函数,以便对服务器进行调用,但是我没有进行这些调用,因为我没有点击登录或注册。

在交换适当视图的ng-view方面一切顺利,但是当我打开控制台时,每次切换视图时,都会得到“localhost:3000 / login”太多的重定向。我发现它很奇怪,因为无论我点击注册,登录,注销,它总是说“localhost:3000 / login”太多重定向。这是在一个快速框架的上下文中,但我不认为它在我的服务器端是一个错误,因为它似乎没有在express中使用我的app.use('/',index)路由器。这是正常的吗?

编辑:这是我的索引路由器:

var express = require('express');
var router = express.Router();

router.get('/',function(req,res,next)
    {
        return res.render('index', { title: 'SERVER TITLE' });
    }
);

module.exports = router;

在app.js中:

app.use('/', index); 
app.use('/auth', authenticate); 

app.all('*',function(req,res,next)
{
  if(req.isAuthenticated())
  {
    return next();
  }
  else
  {
    res.redirect('/login');
  }
});

1 个答案:

答案 0 :(得分:0)

问题是我的客户端路由有问题,所以我的请求最终到达服务器,最终导致多个重定向。