2012-11-07 5 views
0

어떻게이 두 요청을 하나로 병합 할 수 있습니까?여러 조건부 GET 매개 변수

app.get('/:something/:else', function(req, res){ 
    res.render("something"); 
}); 

app.get('/:something', function(req, res){ 
    res.render("something"); 
}); 

나는 이것을 시도했지만 작동하지 않았다.

app.get('(/:something|/:something/:else)', function(req, res){ 
    res.render("something"); 
}); 

답변

2

나는 100 % 확실하지 오전하지만 난 당신이 할 수 있다고 생각 :

var m = function (req, res) { } 
app.get('/one', m); 
app.get('/two', m); 

아니면 사용할 수 있습니다

'/:something/:else?' 

그렇지 않으면 변수에 미들웨어 기능을 저장할 수 있습니다 정규 표현식. Express.js 사이트에 대한 몇 가지 정보가있다

app.get(/^\/commits\/(\w+)(?:\.\.(\w+))?$/, function(req, res){ 
    var from = req.params[0]; 
    var to = req.params[1] || 'HEAD'; 
    res.send('commit range ' + from + '..' + to); 
}); 

: http://expressjs.com/api.html#app.VERB

저자는 또한 Express.js 그래서 어쩌면 당신이 더 많은 정보를 찾을 수 있습니다 라우팅을 기반으로 클라이언트 측 라이브러리를 가지고있다. 그게 내가 할 수있는 곳이야? ' 예. 라이브러리는 page.js라고 불리며 찾을 수 있습니다 : http://visionmedia.github.com/page.js/

+0

''/ : something/: else? ''worked – ThomasReggi