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

Using middleware with express().use along with express.static

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

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

app.use('/secure', 
    function (req, res, next) {
        if (req.isAuthenticated())
            return next();

        res.redirect('/');
    }, 
    express.static(__dirname + '/../../client'));

计划是,中间件确保只有在 he/she 登录时用户才会被转发到 WebApp。如果没有,he/she/it 被重定向到根文件夹。

我发现 this answer, but according to the documentation, the new version supports multiple functions. This 不是我正在寻找的 "clean" 解决方案,因为该目录包含太多子文件夹和文件。

提前致谢

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

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