1

nodeJSとsenchalabのconnectミドルウェアを使用しています(エクスプレスではありません!!)。静的エラー(404など)をキャッチする必要があります。どうすればこれらを入手できますか?ソースを確認しようとしましたが、エラーハンドラをconnect.staticに渡す方法が見つかりませんでした。

これが私が使用する(しなければならない)一般的な構造の要点です:

https://gist.github.com/2397415

4

2 に答える 2

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 バージョンでは削除され、express に移動されました。便利なルーティング システムが必要な場合は、express を使用します。

Connect は直接使用することを意図したものではなく、Express などのフレームワークをサポートするために存在します。

于 2012-04-16T17:10:07.527 に答える
2

静的ルートとすべてのルートの後にキャッチオール ルートを追加できます。

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

一致しないすべての GET リクエストをキャッチします。

于 2012-04-16T09:35:14.003 に答える