如果用户没有login,Node.js会redirect到login

我正在使用节点login模块login我的网站。 好的,用户login后,我呈现我的dashboard.html网站:

app.get('/', function(req, res){ // check if the user's credentials are saved in a cookie // if (req.cookies.user == undefined || req.cookies.pass == undefined){ res.render(req.locale+'/login', { title: 'Hello - Please Login To Your Account' }); } else{ // attempt automatic login // AM.autoLogin(req.cookies.user, req.cookies.pass, function(o){ if (o != null){ req.session.user = o; res.redirect('/home'); } else{ res.render('/login', { title: 'Hello - Please Login To Your Account' }); } }); } }); 

之后,所有其他的html网站都是从dashboard.html链接的,所以没有其他的app.get方法被调用。

如果用户尝试导航到http://www.example.com/news.html (或任何其他不是login页面的html页面),如果用户没有login,我需要将他redirect到login页。

我首先想到了这样的事情,但我不知道这是否可能:

 app.get('I-don't-know-what-to-insert-here', function(req, res) { if (req.session.user == null){ // if user is not logged-in redirect back to login page // res.redirect('/'); } else{ res.redirect('redirect-here-to-the-requested-html-page') } }); 

问候,

你想写中间件,而不是路由处理程序:

 app.use(function(req, res, next) { if (req.session.user == null){ // if user is not logged-in redirect back to login page // res.redirect('/'); } else{ next(); } });