reqes un objeto que contiene información sobre la solicitud HTTP que provocó el evento. En respuesta a req, usted usa respara devolver la respuesta HTTP deseada.
Esos parámetros se pueden nombrar cualquier cosa. Puede cambiar ese código a esto si está más claro:
La solicitud será un objeto con propiedades como estas (solo por nombrar algunas):
request.url, que será "/people.json"cuando se active esta acción particular
request.method, que será "GET"en este caso, de ahí la app.get()llamada.
Una matriz de encabezados HTTP request.headers, que contiene elementos como request.headers.accept, que puede usar para determinar qué tipo de navegador realizó la solicitud, qué tipo de respuestas puede manejar, si es capaz de comprender la compresión HTTP, etc.
Una matriz de parámetros de cadena de consulta si hubiera alguno, en request.query(por ejemplo /people.json?foo=bar, resultaría en request.query.foocontener la cadena "bar").
Para responder a esa solicitud, utiliza el objeto de respuesta para generar su respuesta. Para ampliar el people.jsonejemplo:
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);});
Sí, esto fue genial, debería estar en la página principal del sitio web express.js.
Anton
expressnoob: la respuesta es un objeto, al igual que el objeto de solicitud, pero contiene campos y métodos relacionados con la respuesta. Normalmente se usa el método send () de la respuesta. send () acepta un montón de tipos diferentes para el primer argumento, que se convierte en el cuerpo de respuesta HTTP, y el segundo argumento es el código de respuesta HTTP.
Noté un error en la respuesta de Dave Ward (¿quizás un cambio reciente?): Los parámetros de cadena de consulta están dentro request.query, no request.params. (Ver https://stackoverflow.com/a/6913287/166530 )
request.params por defecto se llena con el valor de cualquier "coincidencia de componentes" en las rutas, es decir
req
=="request"
//res
=="response"
Respuestas:
req
es un objeto que contiene información sobre la solicitud HTTP que provocó el evento. En respuesta areq
, usted usares
para devolver la respuesta HTTP deseada.Esos parámetros se pueden nombrar cualquier cosa. Puede cambiar ese código a esto si está más claro:
Editar:
Digamos que tienes este método:
La solicitud será un objeto con propiedades como estas (solo por nombrar algunas):
request.url
, que será"/people.json"
cuando se active esta acción particularrequest.method
, que será"GET"
en este caso, de ahí laapp.get()
llamada.request.headers
, que contiene elementos comorequest.headers.accept
, que puede usar para determinar qué tipo de navegador realizó la solicitud, qué tipo de respuestas puede manejar, si es capaz de comprender la compresión HTTP, etc.request.query
(por ejemplo/people.json?foo=bar
, resultaría enrequest.query.foo
contener la cadena"bar"
).Para responder a esa solicitud, utiliza el objeto de respuesta para generar su respuesta. Para ampliar el
people.json
ejemplo:fuente
req
yres
estructura, que se describe en la documentación expresas:req
: expressjs.com/en/api.html#req ,res
: expressjs.com/en/api.html#resNoté un error en la respuesta de Dave Ward (¿quizás un cambio reciente?): Los parámetros de cadena de consulta están dentro
request.query
, norequest.params
. (Ver https://stackoverflow.com/a/6913287/166530 )request.params
por defecto se llena con el valor de cualquier "coincidencia de componentes" en las rutas, es deciry, si ha configurado express para usar su bodyparser (
app.use(express.bodyParser());
) también con datos POST'ed. (Consulte ¿Cómo recuperar los parámetros de consulta POST? )fuente
Solicitud y respuesta.
Para entenderlo
req
, pruébaloconsole.log(req);
.fuente