是否可以将app.use放在app.get中

时间:2018-10-23 19:01:12

标签: express

app.get('/game/', function(req, res) {
if (req.session.user) {
    app.use(express.static(__dirname + '/game'));
    res.sendFile(__dirname + '/game/index.html');        
}
else {
    res.send('not logged in ');
}  

})

像下面的代码一样将app.use放入app.get内是否合法?它按预期工作,但我想知道它是否合法。

1 个答案:

答案 0 :(得分:0)

我建议使用两个不同的中间件功能来分离两个不同的问题-身份验证和静态资源服务:

app.get('/game/', ensureAuthenticated, express.static(__dirname + '/game'), sendGameIndex);

function ensureAuthenticated(req, res, next) {
  if (req.session.user) {
    next();        
  } else {
    res.send('not logged in ');
  }
}

function sendGameIndex(req, res) {
  res.sendFile(__dirname + '/game/index.html');
}