什么's使用“:"在URL路径中的名称之前

What's the purpose of using ":" before a name in the path of a URL?

本文关键字:路径 URL quot 使用 什么      更新时间:2023-09-26

这似乎是一个微不足道的问题,但我已经寻找了一段时间的具体权威答案,但到目前为止还没有结果。

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

app.get("/users/:id", function(req, res) {
    res.send(req.params)
})

app.get("/users/:name/photos", function(req, res) {
    res.send(req.params)
})

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

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

我猜测,在URL路径中的名称之前使用:的原因只是为了表示,我们可以传递任何类型的任何内容,而不是:id:name。CCD_ 13或CCD_。这个猜测正确吗?

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

:只是将一个命名变量指示为url该部分中的占位符。如果没有它,id将在url中进行字面匹配,并且不会被解释为动态占位符。这就是它的全部。

你说得对。

CCD_ 18只是用来设置一条路由。它可能是一个!@或其他任何东西。它声明了路由中的一个变量。

在您的代码中:

app.get("/users/:id", function(req, res) {
    res.send(req.params)
})

CCD_ 21成为路由。这意味着users/之后的任何内容都将被该处理程序捕获,并在其内部的id变量中可用。它不必是整数。

此处:

app.get("/users/:name/photos", function(req, res) {
    res.send(req.params)
})

路线定义如下:/users/john/photos/

在这种情况下,john是与路由集匹配的变量。