Запрос будет объект с такими свойствами (просто назвать несколько):
request.url, который будет, "/people.json"когда это конкретное действие вызвано
request.method, который будет "GET"в этом случае, следовательно, app.get()вызов.
Массив заголовков HTTP request.headers, содержащий такие элементы, как request.headers.accept, которые вы можете использовать, чтобы определить, какой браузер отправил запрос, какие ответы он может обработать, способен ли он понимать сжатие HTTP и т. Д.
Массив параметров строки запроса, если они есть request.query(например /people.json?foo=bar, приведет к request.query.fooсодержанию строки "bar").
Чтобы ответить на этот запрос, вы используете объект ответа для создания своего ответа. Чтобы расширить на people.jsonпримере:
app.get('/people.json',function(request, response){// We want to set the content-type header so that the browser understands// the content of the response.
response.contentType('application/json');// Normally, the data is fetched from a database, but we can cheat:var people =[{ name:'Dave', location:'Atlanta'},{ name:'Santa Claus', location:'North Pole'},{ name:'Man in the Moon', location:'The Moon'}];// Since the request is for a JSON representation of the people, we// should JSON serialize them. The built-in JSON.stringify() function// does that.var peopleJSON = JSON.stringify(people);// Now, we can use the response object's send method to push that string// of people JSON back to the browser in response to this request:
response.send(peopleJSON);});
Да, это было здорово, должно быть на главной странице сайта express.js.
Антон
expressnoob - ответ - это объект, как и объект запроса, но он содержит поля и методы, относящиеся к ответу. Обычно используется ответный метод send (). send () принимает целую кучу разных типов для первого аргумента, который становится телом ответа HTTP, а вторым аргументом является код ответа HTTP.
Я заметил одну ошибку в ответе Дейва Уорда (возможно, недавнее изменение?): Параметры строки запроса включены request.query, а не request.params. (См. Https://stackoverflow.com/a/6913287/166530 )
request.params по умолчанию заполняется значением любых «совпадений компонентов» в маршрутах, т.е.
и, если вы настроили Express для использования его bodyparser ( app.use(express.bodyParser());) также с форматы данных POST. (См. Как получить параметры запроса POST? )
req
=="request"
//res
=="response"
Ответы:
req
является объектом, содержащим информацию о HTTP-запросе, вызвавшем событие. В ответreq
вы используетеres
для отправки желаемого ответа HTTP.Эти параметры могут быть названы как угодно. Вы можете изменить этот код на этот, если он более понятен:
Редактировать:
Скажем, у вас есть этот метод:
Запрос будет объект с такими свойствами (просто назвать несколько):
request.url
, который будет,"/people.json"
когда это конкретное действие вызваноrequest.method
, который будет"GET"
в этом случае, следовательно,app.get()
вызов.request.headers
, содержащий такие элементы, какrequest.headers.accept
, которые вы можете использовать, чтобы определить, какой браузер отправил запрос, какие ответы он может обработать, способен ли он понимать сжатие HTTP и т. Д.request.query
(например/people.json?foo=bar
, приведет кrequest.query.foo
содержанию строки"bar"
).Чтобы ответить на этот запрос, вы используете объект ответа для создания своего ответа. Чтобы расширить на
people.json
примере:источник
req
иres
структуры, описано в экспресс - документы:req
: expressjs.com/en/api.html#req ,res
: expressjs.com/en/api.html#resЯ заметил одну ошибку в ответе Дейва Уорда (возможно, недавнее изменение?): Параметры строки запроса включены
request.query
, а неrequest.params
. (См. Https://stackoverflow.com/a/6913287/166530 )request.params
по умолчанию заполняется значением любых «совпадений компонентов» в маршрутах, т.е.и, если вы настроили Express для использования его bodyparser (
app.use(express.bodyParser());
) также с форматы данных POST. (См. Как получить параметры запроса POST? )источник
Запрос и ответ.
Чтобы понять
req
, попробуйтеconsole.log(req);
.источник