2012-03-08 12 views
1

Route Param Pre-Conditionを使用して、URLにslugパラメータが設定されている場合、 "slug"でポートフォリオ項目を取得します。しかし、私はまた、RegExpを使用してURIに一致させたいと考えています。名前付きキャプチャはノードでサポートされていますか?それを与えることができます([-\w]+)は、スラッグ事前条件が解雇されるように名前をキャプチャしますか?param前提条件の名前付きルート

app.param('slug', function(req, res, next, slug){ 
    // get thing from database by slug 
}) 

//app.get('/work/view/:slug', function(req, res){ 
app.get(/^\/work\/view\/([-\w]+)/, function(req, res){ 
    // render view 
}) 
+0

かもしれないが、スタック内の最初のアイテムとして 'checkSlug'を持つ2つのルートがありますか? – mindandmedia

+0

申し訳ありませんが、フォローしていません。 'checkSlug'は何ですか? – typeoneerror

+0

興味深い、それは機能しましたか?今後の質問では、質問には関係のないすべてをコードに入れる必要はありません。このために、あなたがしていることを理解するためのルートに、コールバック関数の内部がすべて必要なわけではありません。 – fent

答えて

3

これがあなたが探しているものかどうかはわかりませんが、私が知る限り直接的な方法はありません。ただし、名前付きのparam( "slug")を使用して、同じ効果を達成するために独自のものと一緒にRegexプリコーディングを追加することができます。

visionmediaのexpress-paramsモジュールhereをご覧ください。私はそれが表現そのものの創作者から来ているので、それがうまく維持されることを期待しています。私もこれのいずれかをテストしていない

app.param('slug', /^[-\w]+$/); 

app.param('slug', function(req, res, next, slug){ 
    // get thing from database by slug 
}); 

app.get('/work/view/:slug', function(req, res){ 
    //render view 
}); 

:基本的にはこのようなものは何あなたが(明示-のparamsをインストールした後に)行うつもりです

+0

が妥当と思われます。いい発見! – typeoneerror