2015-12-23 2 views
1

мне нужно понять, что эта строка кода означаетЧто означает этот синтаксис в HTTP-запросе?

app.get("https://stackoverflow.com/users/:id", function(req, res){ 
     var data = userModel.find().where('username', req); 
     res.send(data); 
    }); 

ту часть, которую я не понимаю «/ пользователей /: идентификатор», а именно: идентификатор часть. Что означает этот синтаксис HTTP-запроса?

+1

Связанный: http://stackoverflow.com/questions/20089582/how-to-get-url-parameter-in-express-node -js – dan08

+0

Это не столько вещь Node.js, сколько вещь Express (которая представляет собой структуру Node). ": id" обозначает переменный путь. Вы можете получить значение «id» из запроса, но я не знаю Express очень хорошо, так что ждите, пока кто-нибудь еще придет. – ndugger

+0

В [RFC3986] (http://tools.ietf.org/html/rfc3986#section-3.3) символ:: является нормальным, юридическим символом в компоненте пути в URL, отличном от первого компонента. Поэтому он не должен делать ничего особенного в клиенте. На сервере он может делать что угодно вообще, как и любой другой компонент пути. –

ответ

1

В коде у вас есть выше, отправив запрос GET на /users/42 приведет к 42 хранится в req.params.id.

По существу, :id говорит, что выразить все, что в запросе URI, где :id находится в объявлении маршрута следует истолковывать хранится на req.params объекта с именем имущества id.

Вы бы, скорее всего, хотят что-то более похожее на это:

app.get("https://stackoverflow.com/users/:id", function(req, res){ 
    var data = userModel.find().where('id', req.params.id); 
    res.send(data); 
}); 
1
Express uses the : to denote a variable in a route. 
For example /user/42 will render a request for user id - 42 
      /user/7 will render a request for user id - 7 
but can be represented as a consistent form /users/:id 
where id is the variable, : represents that whatever is after it is a 
variable, like here we have :id - id being the variable. 

for reference check this out: http://expressjs.com/en/api.html 
Смежные вопросы