【发布时间】:2012-04-27 14:18:24
【问题描述】:
我使用 nodeJS 和 senchalab 的连接中间件(不是 express !!)。我需要捕捉静态错误(如 404)。我怎么得到这些?我试图检查源代码,但找不到将错误处理程序传递给 connect.static 的方法。
这是我(必须)使用的一般结构的要点:
【问题讨论】:
标签: node.js static error-handling http-status-code-404 connect
我使用 nodeJS 和 senchalab 的连接中间件(不是 express !!)。我需要捕捉静态错误(如 404)。我怎么得到这些?我试图检查源代码,但找不到将错误处理程序传递给 connect.static 的方法。
这是我(必须)使用的一般结构的要点:
【问题讨论】:
标签: node.js static error-handling http-status-code-404 connect
根据您的路线:
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 等框架
【讨论】:
您可以在静态和所有路由之后添加一个包罗万象的路由:
app.get('*', function(req, res){
//respond with 404 page or something.
})
它将捕获所有不匹配的 GET 请求。
【讨论】: