gpt4 book ai didi

javascript - ":op?"在 url 路由中意味着什么?

转载 作者:行者123 更新时间:2023-11-29 21:59:40 25 4
gpt4 key购买 nike

查看一些 Node.js Express 代码,我看到了这个路由列表:

app.all('/user/:id/:op?', user.load);
app.get('/user/:id', user.view);
app.get('/user/:id/view', user.view);
app.get('/user/:id/edit', user.edit);
app.put('/user/:id/edit', user.update);

运行此程序时,我注意到对 /user/:id 的请求实际上被路由到 user.load。作为新手,我感到很惊讶。

:op? 在第一行做了什么导致它捕获不太具体的路由?我在 Express documentation 中找不到 :op? 的任何实例.

最佳答案

来自 app.all 的文档:

This method is extremely useful for mapping "global" logic for specific path prefixes or arbitrary matches.

现在让我们看看路由。

app.all('/user/:id/:op?', user.load)中的问号?表示参数:op (可以认为是“操作”)在路由中是可选的。

由于 all 方法调用位于其他路由调用之前,所有匹配路由 /user/:id/, /user/:id/view,和/user/:id/edit会先通过user.load方法。值得一提的是,作为参数的 :op 很可能在 user.load 中没有发挥任何特定作用,而是在路由中充当占位符。

很可能这种方法有助于在继续viewedit 操作之前检查数据库中是否存在实体。

此外,请记住 @apsillers comment以及文档中引用的引用,user.load 方法可能在回调的末尾有一个 next() 调用,以便继续进行其他路由匹配。

关于javascript - ":op?"在 url 路由中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24515069/

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