的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');
}
});
答案 0 :(得分:0)
问题是我的客户端路由有问题,所以我的请求最终到达服务器,最终导致多个重定向。