express路由正则匹配

我写的路由如下:
目的是拦截/commodity/1001这样的请求进行处理
而放过/static/xxxx.png这样的静态资源访问的

app.use([
  /\/.*[^(\.css)]$/,
  /\/.*[^(\.js)]$/,
  /\/.*[^(\.jsx)]$/,
  /\/.*[^(\.html)]$/,
  /\/.*[^(\.htm)]$/,
  /\/.*[^(\.ico)]$/,
  /\/.*[^(\.jpg)]$/,
  /\/.*[^(\.jpeg)]$/,
  /\/.*[^(\.png)]$/,
  /\/.*[^(\.gif)]$/,
], (req, res, next) => {
 
  const fullURL = `${req.protocol}://${req.headers.host}${req.originalUrl}`
  console.log("fullURL", fullURL)
})

app.use("/static", express.static("public"))

预期是下面?这样的请求就都不会被截获

/static/xxxx.png
/static/xxxx.css
/static/xxxx.js

但是事实上这些请求还是会进入?

请问这个正则写的有问题吗?
正确的屏蔽.png .css 这类的正则应该是怎么样的?
谢谢!!!!!

阅读 8.2k
1 个回答

express static
通过 Express 内置的 express.static 可以方便地托管静态文件,例如图片、CSS、JavaScript 文件等。
http://www.expressjs.com.cn/s...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进