在Express JS路由中排除某些文件类型

时间:2014-11-04 17:56:35

标签: regex node.js express

我希望匹配所有/ admin / *请求.png,.gif,.js文件类型。所以写下这条路线:

app.all('/admin*', requiresLogin);

但我不能排除那些文件类型。如何从该路由中排除.png,.gif,.js请求?

2 个答案:

答案 0 :(得分:1)

正则表达式怎么样

\/admin[^.]*\.(?!(?:png|gif|js))

将取消.png,.gif,.js

了解正则表达式在http://regex101.com/r/mW5qZ9/1

的匹配情况
  • \/admin匹配/admin

  • [^.]*\.匹配.后跟.

  • 以外的任何内容
  • (?!(?:png|gif|js))断言正则表达式后面没有png|gif|js

答案 1 :(得分:0)

您也可以设置express来提供静态文件,以便在此路由之前已完成对.png,.gif,.js等的请求

// will serve pictures and scripts
app.use(express.static('path/to/png/gif/and/js/files'));

// will not see requests like '/admin/happy.gif'
app.all('/admin', requireLogin);