nodejs,如何检查是否在每个页面上定义了会话

时间:2012-12-05 19:49:45

标签: node.js session express

我正在使用快递来开发一个简单的网站。 我对在渲染任何页面之前如何使nodejs检查会话感到困惑,因此如果用户没有登录,他就看不到任何东西。

我认为在rails中它很简单,只需在应用程序控制器中添加一些代码即可。但是如何在nodejs中处理这样的事情呢?

1 个答案:

答案 0 :(得分:5)

定义中间件功能以检查路由之前的身份验证,然后在每个路由上调用它。例如,在你的app.js

// Define authentication middleware BEFORE your routes
var authenticate = function (req, res, next) {
  // your validation code goes here. 
  var isAuthenticated = true;
  if (isAuthenticated) {
    next();
  }
  else {
    // redirect user to authentication page or throw error or whatever
  }
}

然后在路由中调用此传递方法(注意authenticate参数):

app.get('/someUrl', authenticate, function(req, res, next) {
    // Your normal request code goes here
});

app.get('/anotherUrl', authenticate, function(req, res, next) {
    // Your normal request code goes here
});