如何捕捉一个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请求。