gpt4 book ai didi

javascript - Express.js : capture generic routes with numeric Id

转载 作者:太空宇宙 更新时间:2023-11-04 02:36:39 24 4
gpt4 key购买 nike

我正在尝试为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' ]

看起来路径已绑定(bind)到 id,而 id 未绑定(bind)到任何变量。

此外,如果我尝试获取这个:

http://localhost:3000/api/clientes/nuevos/2

路线不匹配

所以,我正在寻找一个正则表达式,它允许我捕获多个路径(xxx/yyy),如果它是数字(11),也可以捕获最后一个路径

最佳答案

我可以使用正则表达式而不是字符串来解决它:

app.get(/\/api\/(.*)\/(\d+)/, function(req, res, next) {

现在如果我尝试

http://localhost:3000/api/clientes/menores/71

我明白了

req.params = [ 'clientes/menores', '71' ]

但是我想知道是否有某种方法可以使用 :id 标记...

关于javascript - Express.js : capture generic routes with numeric Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21671618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com