BackboneとpushStateで動作するようにExpressをセットアップしようとしていますが、ルーティングを処理する方法がわかりません。をURLに挿入して未定義のルートを処理するミドルウェア関数( https://gist.github.com/3402977に基づく)を追加しようとしました#
が、ミドルウェアが呼び出されないようです。
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('yadda yadda'));
app.use(express.session());
app.use(app.router);
// This should handle undefined routes.
app.use(function(err, req, res, next){
// Isn't getting called.
newUrl = req.protocol + '://' + req.get('Host') + '/#' + req.url;
res.redirect(newUrl);
});
app.use(express.static(path.join(__dirname, 'public')));
});
現在、Express(http://localhost:3000/test/foo
)で定義していないルートにアクセスすると、Could not GET /test/foo
エラーが発生します。http://localhost:3000/#/test/foo
Backboneがパーマリンクなどのルーティングを処理できるようにリダイレクトしたいと思います。私は何が欠けていますか?