2015-11-14 3 views
0

Это может показаться тривиальной проблемой, но я нашел какое-то время для конкретного авторитетного ответа, но до сих пор ничего не вышло.Какова цель использования «:» перед именем на пути к URL?

Я использовал express.js, и я был видим обработчики URL с путями, такими как

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

или

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

Но я не совсем уверен, с целью использования : до id (или name) в этих случаях.

Я знаю, что, если я использую : перед тем id, id будет доступен в качестве параметра req.params, т.е. req.params.id. Обычно id является целым числом, но это на самом деле не является строго необходимым, это может быть что угодно (например, строка).

Мое предположение о причине использования : перед именем на пути в URL, просто сказать, чтобы выразить, что вместо :id или :name, мы можем передать все, что мы хотим любого типа. :id или :name считаются переменными. Правильно ли это?

Каковы цели использования : при обработке маршрутизации? Когда мы должны его использовать?

ответ

5

: просто указывает именованную переменную в качестве заполнителя в той части URL-адреса. Без него id будет подбираться буквально в URL-адресе и не будет интерпретироваться как динамический заполнитель. Вот и все.

0

Вы правы.

: предназначено для маршрута. Это могло быть ! или @ или что-то еще в этом отношении. Он объявляет переменную в маршруте.

В коде:

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

/users/:id становится маршрут. Это означает, что все, что после users/ будет уловлено этим обработчиком и станет доступным в переменной id внутри него. Это не должно быть целым числом.

Здесь:

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

Маршрут определяется что-то вроде этого: /users/john/photos/

В этом случае john является переменной, которая соответствует этому маршруту.

Смежные вопросы