在URL路径中的名称前使用":"的目的是什么?

nbr*_*bro 0 javascript routing node.js express

这似乎是一个微不足道的问题,但我已经找了一段时间来获得具体的权威答案,但到目前为止还没有出现.

我一直在使用express.js,我一直在看到带有路径的URL处理程序

app.get("/users/:id", function(req, res) {
    res.send(req.params)
})
Run Code Online (Sandbox Code Playgroud)

要么

app.get("/users/:name/photos", function(req, res) {
    res.send(req.params)
})
Run Code Online (Sandbox Code Playgroud)

但我并不完全确定在这些情况下使用:之前id(或name)的目的.

我知道,如果我:之前使用id,id将作为参数req.params,即req.params.id.通常id是一个整数,但这实际上并不是绝对必要的,它可能是其他任何东西(例如字符串).

我猜测:在URL路径中使用名称之前的原因只是为了表达,而不是:id或者:name,我们可以传递我们想要的任何类型.:id或被:name视为变量.这个猜测是否正确?

:处理路由时使用的目的是什么?我们什么时候应该使用它?

msc*_*dex 5

:只是表明了一个名为变量作为URL的一部分的占位符.没有它,id将在URL中字面匹配,并且不会被解释为动态占位符.这里的所有都是它的.