如果我去http://localhost:3000
開始我的項目,我沒有登錄,它會去http://localhost:3000/login
,但我希望它去http://localhost:3000/#/login
。有沒有辦法做到這一點,除非我在角度前端重定向?還是我做錯了?使用Angular ui路由器重定向到Express
,如果我能做到這一點,在快遞後端這將是理想的
我的角路由文件
$stateProvider
.state('app', {
abstract: true,
url: '/app',
templateUrl: '/layout'
})
.state('app.dashboard', {
url: '/dashboard',
templateUrl: '/dashboard',
ncyBreadcrumb: {
label: 'Dashboard',
description: ''
}
})
.state('login', {
url: '/login',
templateUrl: '/login',
ncyBreadcrumb: {
label: 'Login'
}
})
我快速路由文件
function isLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
return next();
}
return res.redirect('/login'); //this goes to login but doesn't load properly
//return res.redirect('/#/login'); //does not work
}
router.get('/', isLoggedIn, function (req, res) {
return res.render('index');
});
編輯:我在加入這個回覆@家健潤
router.get('/#/login', function (req, res) {
return res.render('login');
});
,改變isLoggedIn功能去:
return res.redirect('/#/login')
但它說,它的示數說過多的重定向CUS它沒有找到它。
編輯2:
對不起,我不知道如果我明白你想說什麼?現在例如..如果沒有isLoggedIn
檢查,它會自動去儀表板,因爲這裏的代碼行在這裏我的url是http://localhost:3000/#/app/dashboard
自動:
$ urlRouterProvider.otherwise('/ app/dashboard 「);
但我沒有路線在我的快車方/app/dashboard
具體。我已經工作正常的儀表板路由是這樣:
router.get('/dashboard', function (req, res) {
return res.render('dashboard');
});
編輯OP。這是你的意思嗎? – user1189352
抱歉,我無法理解您的評論。你能解釋更多嗎? – jiajianrong
我編輯原來的帖子迴應你的答案,但我不能得到它的工作。是我在原來的文章中編輯過的,你試圖告訴我做什麼? – user1189352