【发布时间】:2014-09-17 02:46:30
【问题描述】:
想问一个关于 nodeJS 重定向和渲染的问题。
app.js
在我的 app.js 中,我有这些代码,效果很好。
app.get('/dashboard', routes.dashboard);
app.get('/error/404', error.notFound);
然后,深入研究方法
error.notFound
当你从 URL 加载它时效果也很好
exports.illegal = function(req, res){
var authLevel = '';
var entityName = '';
var entityId = '';
var deviceId = '';
if (req.session.authorizationLevel) authLevel = req.session.authorizationLevel;
if (req.session.name) entityName = req.session.name;
if (req.session.entityId) entityId = req.session.entityId;
if (req.session.deviceId) deviceId = req.session.deviceId;
res.render('error/illegal', {
title: 'Illegal'
, viewClass: 'illegal'
, ngController : ''
, entityName : entityName
, entityId : entityId
, deviceId : deviceId
, authorizationLevel : authLevel
});
};
routes.dashboard
当你从 URL 加载它时效果也很好
exports.dashboard = function(req, res){
//Method for authorization, see below. This is giving me error.
authorizationHelper.authorizationLevels(req, res, 400);
var authLevel = '';
var entityName = '';
var entityId = '';
var deviceId = '';
if (req.session.authorizationLevel) authLevel = req.session.authorizationLevel;
if (req.session.name) entityName = req.session.name;
if (req.session.entityId) entityId = req.session.entityId;
if (req.session.deviceId) deviceId = req.session.deviceId;
res.render('dashboard', {
title: 'Dashboard'
, viewClass: 'dashboard'
, ngController: 'dashboardController'
, entityName : entityName
, entityId : entityId
, deviceId : deviceId
, authorizationLevel : authLevel
});
};
这是给我一些错误的棘手部分。
//Method for authorization, see below. This is giving me error.
authorizationHelper.authorizationLevels(req, res, 400);
授权助手
此方法将检查是否允许用户查看页面,否则将重定向
exports.authorizationLevels = function(req, res, levelRequired){
if (req.session.authorizationLevel < levelRequired || !req.session.authorizationLevel){
//user is not allowed to view the page, redirect to illegal page
res.redirect('/error/401');
}
}
问题是,从顶部到这个 res.redirect('/error/401') 一切正常,有时,在服务器上,它不会呈现页面,而是会呈现一大堆 HTML文本和一些标题!!!
请帮忙!
【问题讨论】:
-
HTML 是否显示您的
dashboard模板? -
是的,这是我的仪表板模板。我正在使用 express-ejs-layout 进行渲染。
标签: javascript node.js redirect render