如何防止用户使用express访问客户端html文件?

我正在写一个“todolist”应用程序。 在我的node.js代码中,我使用express来访问我的文件夹Client

var app = express(); app.use(express.static(__dirname + "/Client")); 

在我的客户端文件夹中是以下内容:

 codeJS.js homepage.html Todolistpage.html style.css logo.jpg 

如何防止用户在inputlocalhost:3000 / Todolistpage.html (而不从我的客户端文件夹中删除Todolistpage.html )时无法查看我的Todolistpage.html文件?

(理想情况下,我尝试只允许用户login查看它)

如果不静态提供文件并将其作为视图逻辑的一部分进行处理,可能会更容易一些。 所以你只需从公共目录中删除它,并分别用app.get()router.get()中间件来处理它。 有什么原因需要静态服务吗?

你可以做这样的事情:

 var app = express(); app.get('/Todolistpage.html, function(req, res) { return res.status(401).end(); }); app.use(express.static(__dirname + '/Client'); 

这并不理想,因为只要文件名发生更改,就必须对其进行更改,而且必须为每个文件单独执行一次。

你也可以有一个不同的目录/secure和一些用于用户身份validation的中间件,如:

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

甚至…

 app.use('/secure', someAuth, express.static(__dirname + '/Client/secure')); 

但是这似乎让我感到困惑。