Express JS:如何知道请求是否适用于静态资产?

时间:2015-06-29 13:41:33

标签: node.js express middleware

我正在为某些特定任务编写中间件,当请求是针对静态资产时,应该执行(来自客户端文件夹:app.use(express.static(path.join(__ dirname,“ ../客户端“))))

那么我怎么知道特定请求是针对静态资产还是来自“client”文件夹?

我有以下代码

app.use(express.static(path.join(__dirname, "../client")));   
app.use(someCustomMiddleware()); 

我看到对css / js文件等静态资产的请求仍然通过someCustomMiddleware()。我的要求是someCustomMiddleware()不应该处理静态资产的请求。

1 个答案:

答案 0 :(得分:1)

只需在其他路线之前添加它。如果对静态项目发出请求,那么它将首先转到app.use(express.static(path.join(__dirname, "../client")));,然后转到您的路线。

实施例。假设您的公用文件夹中包含一些css文件夹,其中包含文件style.css。让我们说你的路线看起来像这样。

app.use(express.static(path.join(__dirname, "../public")));
app.use(someMiddleware);

如果您访问/css/style.css,则会点击express.static并提供该文件,但不会转到该'/'路由。