2014-07-26 26 views
0

的想法是后续:两人在Node.js的快速框架静态目录(公私营+)

  • 发送的登录目录,当用户没有通过认证。
  • 发送应用程序目录一次,用户登录(在这种情况下,使用护照模块)。

实施例:

未登录:

请求:GET/

响应:从index.html的PATH_login

记录在内:

请求:GET/

响应:index.html的从PATH_app

我试过,但没有奏效:

app.use(function(req,res,next){ 

    if (req.isAuthenticated()) 
    { 
     // user is authenticated 
     return express.static(PATH_app) 
    } 
    else 
    { 
     // user is not authenticated 
     return express.static(PATH_login) 
    } 

}); 

回答

1

在初始化时,你设置的中间件应该为每个请求调用切换功能。

你也应该初始化每个会之间在这个时候进行切换的中间件功能。

在运行时为每个请求(当在功能传递给app.use代码获取运行),该切换功能转发到相应的中间件,它会调用相关功能:

var appStatic = express.static(PATH_app); 
var loginStatic = express.static(PATH_login); 

app.use(function(req, res, next) { 
    if (req.isAuthenticated()) { 
     // user is authenticated 
     return appStatic(req, res, next); 
    } else { 
     // user is not authenticated 
     return loginStatic(req, res, next); 
    } 
});