我正在尝试为express.js路由定义通用处理程序
这个想法是为了得到像
这样的东西get / api / xxx / yyy - >获取所有数据
get / api / xxx / yyy / 11->得到记录11
我需要在一个变量上捕获xxx / yyy,在另一个变量中捕获11个
这很好用:
app.get('/api/*', function(req, res, next) {
我没有抓到任何东西,但我用req.path属性
读取它但我似乎无法解决这个问题:
app.get('/api/*/:id(\\d+)$', function(req, res, next) {
如果我尝试:
http://localhost:3000/api/clientes/2
这是我在req.params中得到的:
req.params = [ '2', id: 'clientes' ]
似乎路径绑定到id,并且id未绑定到任何变量。
此外,如果我尝试抓取这个:
http://localhost:3000/api/clientes/nuevos/2
路线不匹配
所以,我正在寻找一个正则表达式,允许我捕捉几个路径(xxx / yyy),如果它是一个数字(11)
也是最后一个答案 0 :(得分:0)
我可以使用正则表达式而不是字符串来解决它:
app.get(/\/api\/(.*)\/(\d+)/, function(req, res, next) {
现在,如果我尝试
http://localhost:3000/api/clientes/menores/71
我得到了
req.params = [ 'clientes/menores', '71' ]
但我想知道是否有某种方法可以使用:id marker ...