我使用nodeJS和senchalab的连接中间件(不是表达!!)。我需要捕获静态错误(如404)。我怎么得到这些?我试图检查源代码,但我找不到将错误处理程序传递给connect.static的方法。
这是我必须使用的一般结构的要点:
答案 0 :(得分:5)
根据您的路线:
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版本中它是removed并移动到表达。如果您需要有用的路由系统,请使用express:
Connect从未打算直接使用,它可以支持 像Express这样的框架
答案 1 :(得分:2)
你可以在静态和所有路线之后添加一个包罗万象的路线:
app.get('*', function(req, res){
//respond with 404 page or something.
})
它将捕获所有无法比拟的GET请求。