与express()一起使用中间件。与express.static一起使用

我使用PassportJS来保护WebApp(用AngularJS编写)。 我使用Express(4.0.0)的NodeJS在login屏幕后提供静态内容。 我不知道如何同时使用中间件和express.static()

我的(不工作)代码看起来像

 app.use('/secure', function (req, res, next) { if (req.isAuthenticated()) return next(); res.redirect('/'); }, express.static(__dirname + '/../../client')); 

中间件确保的计划是,只有当用户login时,用户才会被发送到WebApp。否则,他/她将被redirect到根文件夹。

我find了这个答案 ,但根据文档 ,新版本支持多种function。 这不是我正在寻找的“干净”的解决scheme,因为目录包含太多的子文件夹和文件。

提前致谢

当你将中间件附加到相同的路由上时,它们将按照相同的顺序执行,所以如果你想在express.static之前执行任何中间件,你所要做的就是将它附加到同一个路由上,然后声明它。

 app.use('/secure', myMiddleWare); app.use('/secure', express.static(__dirname + '/../../client'));