Node.js 限制对ExpressJS中静态文件的访问

Node.js 限制对ExpressJS中静态文件的访问,node.js,express,Node.js,Express,我有一个服务器,它通过中间件将几乎所有内容路由到服务器,以检查您是否登录,但这只适用于路由。我还希望它能够处理public目录中的静态文件。我该怎么做呢 更新:最好不要担心保护/public文件夹中的内容,因为express提供了res.download(…)功能 为了澄清静态文件,express还使用express.static中间件在服务器上运行。理论上,您可以在它之前包含中间件来处理安全性。除此之外,静态中间件的思想是,您只能使文件夹public静态可用,因为它是公共的 你可以在这里找到定

我有一个服务器,它通过中间件将几乎所有内容路由到服务器,以检查您是否登录,但这只适用于路由。我还希望它能够处理
public
目录中的静态文件。我该怎么做呢


更新:最好不要担心保护
/public
文件夹中的内容,因为express提供了
res.download(…)
功能

为了澄清静态文件,express还使用
express.static
中间件在服务器上运行。理论上,您可以在它之前包含中间件来处理安全性。除此之外,静态中间件的思想是,您只能使文件夹
public
静态可用,因为它是公共的

你可以在这里找到定义。您可以重写它,以便将中间件注入其中

或者你可以自己编写一个简单的静态文件路由器

在静态中间件之前,您是否尝试过注入您自己的安全登录中间件

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

对于我的方案,我将
public
文件夹重命名为
static
,并在其中创建一个名为
public
的新文件夹。我想让中间件为
静态/public
文件夹中的任何文件提供服务,而不需要登录,这样我就可以在登录表单中使用css等。我将查看如何获得路线,但如果您能从头知道并将其张贴在此处,可能会节省一些时间。谢谢你的帮助@Stephen
express.static(dirname+'/static/public')
将使这些文件保持静态。然后,您可以为
安全登录静态
实现类似于
静态
的中间件