gpt4 book ai didi

javascript - 路由匹配中的歧义

转载 作者:搜寻专家 更新时间:2023-11-01 00:41:01 25 4
gpt4 key购买 nike

Restify正在击中不正确的路线并造成歧义。

我有 2 条路线:

apiRouter.get({ path: '/goals/:id', version: '1.0.0' }, goals.getGoal);
apiRouter.get({ path: '/goals/mute', version: '1.0.0' }, lists.getGoalMute);

当我在 /goals/mute 上请求时,它会在 /goals/:id 上。

我切换了路线(将较低的路线移到了上面):

apiRouter.get({ path: '/goals/mute', version: '1.0.0' }, lists.getGoalMute);
apiRouter.get({ path: '/goals/:id', version: '1.0.0' }, goals.getGoal);

现在请求进入正确的路径 /goals/mute

我不明白这种行为,restify 使用的匹配条件是什么?

最佳答案

你们的路线很相似。所以现在一切都取决于路线的顺序。

/goals/:id/goals/mute 完全相同。

/goals/:id      /goals/something    //here "something" will be "id"
/goals/mute /goals/something //here "something" will be "mute"

您将不得不更改路线的顺序:

/goals/mute
/goals/:id

现在它将首先与 /goals/mute 匹配,然后与 /goals/:id 匹配。

因此,如果您点击 /goals/,它将转到 /goals/:id

关于javascript - 路由匹配中的歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34509190/

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