ConnectでディレクトリをServeする

node.jsのモジュール、Connectを使ってみたのです。Expressとかが乗っかってるやつですな。
でもこれ、そのまま生で使うもんじゃないね……
環境:MacOS 10.7.4 / node.js 0.8.6 / npm 1.1.48

Connectのインストール

おもむろに以下のコマンドを。

$ npm install connect

コードを書く

ついでに以下のコードを。

// app.js
var connect = require('connect');

connect()
  .use(connect.static('./'))
  .use(connect.directory('./'))
  .listen(3000)

実行する

んで以下のコマンドを。

$ node app.js

アクセスしてみる

で、あとはhttp://localhost:3000/にアクセスすると、

こんな感じ。なーんて手軽なんでしょう。
でもこれでファイル名がクリックされたときに処理を書きたかったんだけど、それがわかんなかったのです……


追記:

var connect = require('connect');

connect()
  .use(getFile)
  .use(connect.directory('./'))
  .listen(3000);

function getFile(req, res, next) {
  if (req.method !== 'GET') {
    return next();
  }
  res.setHeader('Content-Type', 'text/plain');
  res.write('file: ');
  res.end(req.url);
}

こんな感じで書いてあげると、ファイル名をクリックしたあとにいろいろ出来るみたい。
でもやっぱり大抵の場合はExpress使った方が楽な気がする。