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

时间:2016-01-11 20:43:53

标签: javascript html node.js express

我正在写一个“todolist”应用程序。在我的node.js代码中,我使用了express并允许它访问我的名为 Client 的文件夹:

var app = express();

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

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

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

如何在用户输入 localhost:3000 / Todolistpage.html 时阻止用户无法查看我的 Todolistpage.html 文件(不删除 客户端文件夹中的> Todolistpage.html

(理想情况下,稍后我会尝试仅允许用户登录查看)

2 个答案:

答案 0 :(得分:1)

如果你不静态地提供文件并将其作为视图逻辑的一部分来处理它,可能会更容易。因此,您只需将其从公共目录中删除,然后使用app.get()router.get()中间件单独处理它。你有必要静态服务吗?

答案 1 :(得分:1)

你可以这样做:

var app = express();

app.get('/Todolistpage.html, function(req, res) {
  return res.status(401).end();
});

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

这并不理想,因为您必须在文件名更改时随时更改它,并且必须为每个文件单独更改。

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

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

甚至......

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

但这对我来说似乎很困惑。