在expressJS中捕获所有无效的URL也捕获静态或公共文件
我使用expressJs 3.x和节点0.8.8。 在我的应用程序,我试图赶上所有无效的url。 所以我添加了下面的代码。 它工作正常,它也捕捉的url,如果我试图访问公共或静态文件。
app.all('/*', function(req, res){ \\ Do some action like redirecting or whatever ... });
如何避免或传递静态文件夹文件(GET请求)以及如何只捕获无效的URL?
最有可能的是,你在app.use(express.static(...))
app.use(app.router)
之前调用app.use(app.router)
,这样express
尝试find匹配的路由,并且只有当没有匹配的路由时试图find相应的静态文件。
configuration代码应该是这样的:
app.configure(function () { app.use(express.static(__dirname + '/public')); app.use(app.router); });
这样express
会先尝试find一个静态文件。
Express
没有区分静态和非静态的原因有很多,这可能有点棘手,但是非常灵活。
我不确定expressjs have to differentiate static calls
什么意思, expressjs have to differentiate static calls
,没有这样的事情, invalid url
,它只是如何解释一个任意的string。