如何阻止路由到 public 文件夹中的页面

How to block routing to a page in the public folder

我正在尝试设计我的 NodeJS 应用程序,但有些事情让我感到困惑。

在我的应用程序中,我计划将所有前端 material 放在文件夹 /public 中,然后将行

app.use(express.static(__dirname + '/public'));

在我的 app.js 文件中。

因此,有了这个,用户将能够转到 thesite.com/gallery/stuff 并且它会起作用,因为 gallery 文件夹位于 /public.

但是如果我不希望用户能够访问这个区域怎么办?例如,我如何拦截他的请求并确保他已登录?有没有办法让 public 文件夹的某些部分不那么 public?

你可以在它前面放一个路由器

app.all('/gallery/*', function(req, res, next){
    if(!req.user) next(new Error('You shall not pass!'));
    else next();
});
app.use(express.static(__dirname + '/public'));