如何捕捉一个nodejs连接静态404错误?

我使用nodeJS和senchalab的连接中间件(不expression!!)。 我需要捕捉静态错误(如404)。 我如何得到这些? 我试图检查源,但我找不到一个方法来传递一个error handling程序connect.static。

这里是我必须使用的一般结构的要点:

https://gist.github.com/2397415

根据您的路线:

router.routes['/'] = 'my page'; router.routes['/404'] = '404 test'; 

我认为你的意思是:

 connect() .use(connect.static(__dirname + '/public')) .use(function(req, res, next){ switch (req.url) { case '/404': var body = '404 test'; res.statusCode = 404; res.setHeader('Content-Length', body.length); res.end(body); break; default: var body = 'my page'; res.setHeader('Content-Length', body.length); res.end(body); } }) .listen(3001); 

另外我想补充说,在旧的连接版本1.x中,您可以使用“connect.router”,但在2.x版本中,它被删除并移动表示。 如果你需要有用的路由系统,请使用express:

Connect从来不是要直接使用的,它支持像Express这样的框架

你可以在静态和所有你的路由之后添加一个catch-all路由:

 app.get('*', function(req, res){ //respond with 404 page or something. }) 

它会捕获所有不匹配的GET请求。