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