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:
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ée
request.method, qui sera "GET"dans ce cas, d'où l' app.get()appel.
Un tableau d'en-têtes HTTP dans 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.
Un tableau de paramètres de chaîne de requête, s'il y en avait, dans 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);});
Oui, c'était génial devrait être sur la page principale du site express.js.
Anton
expressnoob - response est un objet, tout comme l'objet de requête, mais il contient des champs et des méthodes relatifs à la réponse. Normalement, la méthode send () de la réponse est utilisée. send () accepte tout un tas de types différents pour le premier argument, qui devient le corps de la réponse HTTP, et le second argument est le code de la réponse HTTP.
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
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"
Réponses:
req
est 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:
Éditer:
Disons que vous avez cette méthode:
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 querequest.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=bar
aurait pour résultat derequest.query.foo
contenir 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.json
exemple:la source
req
etres
structure, il est décrit dans docs express:req
: expressjs.com/en/api.html#req ,res
: expressjs.com/en/api.html#resJ'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
, nonrequest.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-à-direet, 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? )la source
Demande et réponse.
Pour comprendre le
req
, essayezconsole.log(req);
.la source