En la siguiente función Express:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
¿Qué son reqy res? ¿Qué representan, qué quieren decir y qué hacen?
¡Gracias!
En la siguiente función Express:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
¿Qué son reqy res? ¿Qué representan, qué quieren decir y qué hacen?
¡Gracias!
Respuestas:
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:
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
Editar:
Digamos que tienes este método:
app.get('/people.json', function(request, response) { });
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í la app.get()llamada.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.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);
});
reqy resestructura, que se describe en la documentación expresas: req: expressjs.com/en/api.html#req , res: expressjs.com/en/api.html#res
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
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
y, 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? )
req=="request"//res=="response"