2014-11-01 128 views
0

我有一个可以被定义为用于路由的NodeJS动态参数

app.route('/api/*/*/*') 

.get(function(req, res){ 
    var entitya = req.params['0']; 
    var entityb = req.params['1']; 
    var entity3 = req.params['2']; 
}) 

.post(function(req, res){ 
    res.send('some stuff here'); 
}); 

如果我通过这三个参数,但如果我这样做了布线后不带任何参数也找不到它还是这个工程很好的路线如果我没有定义所有三个进入获取路线,它不会找到该网址。

有没有办法在路由定义中忽略*,并使get参数动态?所以如果我需要传递3个参数,我可以,或2,甚至5?

谢谢!

回答

0

您可以将routers绑定到不同的API网址。

像这样

app.use('/api/v1/function1', router1); 
app.use('/api/v1/function2', router1); 

,或者您可以使用正则表达式的URL名称

app.get(/^\/api\/([a-z0-9]+)\/([a-z0-9]+)$/, function(req,res) { 
    req.params[0]; //first match of reges 
    req.params[1]; //second match of reges 
}); 

app.post(/^\/api\/([a-z0-9]+)\/([a-z0-9]+)$/, function(req,res) { 
    req.params[0]; //first match of reges 
    req.params[1]; //second match of reges 
});