Dans la fonction Express suivante:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
Que sont req etres ? Que représentent-ils, que signifient-ils et que font-ils?
Merci!
Dans la fonction Express suivante:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
Que sont req etres ? Que représentent-ils, que signifient-ils et que font-ils?
Merci!
Réponses:
reqest un objet contenant des informations sur la requête HTTP qui a déclenché l'événement. En réponse à req, vous utilisezres pour renvoyer la réponse HTTP souhaitée.
Ces paramètres peuvent être nommés n'importe quoi. Vous pouvez changer ce code en ceci si c'est plus clair:
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
Éditer:
Disons que vous avez cette méthode:
app.get('/people.json', function(request, response) { });
La requête sera un objet avec des propriétés comme celles-ci (pour n'en nommer que quelques-unes):
request.url, qui sera "/people.json"lorsque cette action particulière sera déclenchéerequest.method, qui sera "GET"dans ce cas, d'où l' app.get()appel.request.headers, contenant des éléments tels que request.headers.accept, que vous pouvez utiliser pour déterminer le type de navigateur qui a effectué la requête, le type de réponses qu'il peut gérer, s'il est capable ou non de comprendre la compression HTTP, etc.request.query(par exemple, cela /people.json?foo=baraurait pour résultat de request.query.foocontenir la chaîne "bar").Pour répondre à cette demande, vous utilisez l'objet de réponse pour créer votre réponse. Pour développer l' people.jsonexemple:
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);
});
reqet resstructure, il est décrit dans docs express: req: expressjs.com/en/api.html#req , res: expressjs.com/en/api.html#res
J'ai remarqué une erreur dans la réponse de Dave Ward (peut-être un changement récent?): Les paramètres de la chaîne de requête sont request.query, non request.params. (Voir https://stackoverflow.com/a/6913287/166530 )
request.params par défaut est rempli avec la valeur de toute "correspondance de composant" dans les routes, c'est-à-dire
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
et, si vous avez configuré express pour utiliser son bodyparser ( app.use(express.bodyParser());) également avec les données de formulaire POST. (Voir Comment récupérer les paramètres de requête POST? )
req=="request"//res=="response"