reqé um objeto que contém informações sobre a solicitação HTTP que gerou o evento. Em resposta a req, você usa respara enviar de volta a resposta HTTP desejada.
Esses parâmetros podem ter qualquer nome. Você pode alterar esse código para isso se for mais claro:
A solicitação será um objeto com propriedades como estas (apenas para citar alguns):
request.url, que será "/people.json"quando essa ação específica for acionada
request.method, que será "GET"neste caso, daí a app.get()chamada.
Uma matriz de cabeçalhos HTTP request.headers, contendo itens como request.headers.accept, que você pode usar para determinar que tipo de navegador fez a solicitação, que tipo de respostas ele pode manipular, se é capaz de entender ou não a compactação HTTP etc.
Uma matriz de parâmetros de string de consulta, se houver algum, em request.query(por exemplo /people.json?foo=bar, resultaria em request.query.fooconter a string "bar").
Para responder a essa solicitação, use o objeto de resposta para criar sua resposta. Para expandir no people.jsonexemplo:
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);});
Sim, isso foi ótimo, deve estar na página principal do site express.js.
Anton
expressnoob - response é um objeto, assim como o objeto de solicitação, mas contém campos e métodos pertencentes à resposta. Normalmente, o método send () da resposta é usado. O send () aceita vários tipos diferentes para o primeiro argumento, que se torna o corpo da resposta HTTP, e o segundo argumento é o código de resposta HTTP.
Percebi um erro na resposta de Dave Ward (talvez uma alteração recente?): Os paramaters de string de consulta estão dentro request.query, não request.params. (Consulte https://stackoverflow.com/a/6913287/166530 )
request.params por padrão, é preenchido com o valor de qualquer "correspondência de componente" nas rotas, ou seja,
e, se você configurou o express para usar seu bodyparser ( app.use(express.bodyParser());) também com os dados do formulário do POST. (Consulte Como recuperar parâmetros de consulta POST? )
req
=="request"
//res
=="response"
Respostas:
req
é um objeto que contém informações sobre a solicitação HTTP que gerou o evento. Em resposta areq
, você usares
para enviar de volta a resposta HTTP desejada.Esses parâmetros podem ter qualquer nome. Você pode alterar esse código para isso se for mais claro:
Editar:
Digamos que você tenha este método:
A solicitação será um objeto com propriedades como estas (apenas para citar alguns):
request.url
, que será"/people.json"
quando essa ação específica for acionadarequest.method
, que será"GET"
neste caso, daí aapp.get()
chamada.request.headers
, contendo itens comorequest.headers.accept
, que você pode usar para determinar que tipo de navegador fez a solicitação, que tipo de respostas ele pode manipular, se é capaz de entender ou não a compactação HTTP etc.request.query
(por exemplo/people.json?foo=bar
, resultaria emrequest.query.foo
conter a string"bar"
).Para responder a essa solicitação, use o objeto de resposta para criar sua resposta. Para expandir no
people.json
exemplo:fonte
req
eres
estrutura, é descrito no docs Express:req
: expressjs.com/en/api.html#req ,res
: expressjs.com/en/api.html#resPercebi um erro na resposta de Dave Ward (talvez uma alteração recente?): Os paramaters de string de consulta estão dentro
request.query
, nãorequest.params
. (Consulte https://stackoverflow.com/a/6913287/166530 )request.params
por padrão, é preenchido com o valor de qualquer "correspondência de componente" nas rotas, ou seja,e, se você configurou o express para usar seu bodyparser (
app.use(express.bodyParser());
) também com os dados do formulário do POST. (Consulte Como recuperar parâmetros de consulta POST? )fonte
Pedido e resposta.
Para entender
req
, experimenteconsole.log(req);
.fonte