reqist ein Objekt, das Informationen zu der HTTP-Anforderung enthält, die das Ereignis ausgelöst hat. Als Reaktion auf req, verwenden Sie resdie gewünschte HTTP - Antwort zurück zu senden.
Diese Parameter können beliebig benannt werden. Sie können diesen Code in diesen Code ändern, wenn es klarer ist:
Die Anfrage ist ein Objekt mit Eigenschaften wie diesen (um nur einige zu nennen):
request.url"/people.json"Dies ist der Fall, wenn diese bestimmte Aktion ausgelöst wird
request.method, was "GET"in diesem Fall sein wird, daher der app.get()Aufruf.
Ein Array von HTTP-Headern request.headersmit Elementen wie request.headers.accept, mit denen Sie bestimmen können, welche Art von Browser die Anforderung gestellt hat, welche Art von Antworten verarbeitet werden können, ob die HTTP-Komprimierung verstanden werden kann oder nicht usw.
Ein Array von Abfragezeichenfolgenparametern, falls vorhanden, in request.query(z. B. /people.json?foo=barwürde dazu führen request.query.foo, dass die Zeichenfolge enthalten ist "bar").
Um auf diese Anfrage zu antworten, verwenden Sie das Antwortobjekt, um Ihre Antwort zu erstellen. So erweitern Sie das people.jsonBeispiel:
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);});
Ja, das war großartig, sollte auf der Hauptseite der express.js-Website stehen.
Anton
expressnoob - response ist ein Objekt, genau wie das Request-Objekt, enthält jedoch Felder und Methoden, die sich auf die Antwort beziehen. Normalerweise wird die send () -Methode der Antwort verwendet. send () akzeptiert eine ganze Reihe verschiedener Typen für das erste Argument, das zum HTTP-Antworttext wird, und das zweite Argument ist der HTTP-Antwortcode.
Ich habe einen Fehler in Dave Wards Antwort bemerkt (vielleicht eine kürzliche Änderung?): Die Parameter der Abfragezeichenfolge sind in request.query, nicht request.params. (Siehe https://stackoverflow.com/a/6913287/166530 )
request.params Standardmäßig ist der Wert aller "Komponentenübereinstimmungen" in Routen angegeben, d. h
und wenn Sie express so konfiguriert haben, dass es seinen bodyparser ( app.use(express.bodyParser());) auch mit POST-Formulardaten verwendet. (Siehe So rufen Sie POST-Abfrageparameter ab. )
req
=="request"
//res
=="response"
Antworten:
req
ist ein Objekt, das Informationen zu der HTTP-Anforderung enthält, die das Ereignis ausgelöst hat. Als Reaktion aufreq
, verwenden Sieres
die gewünschte HTTP - Antwort zurück zu senden.Diese Parameter können beliebig benannt werden. Sie können diesen Code in diesen Code ändern, wenn es klarer ist:
Bearbeiten:
Angenommen, Sie haben diese Methode:
Die Anfrage ist ein Objekt mit Eigenschaften wie diesen (um nur einige zu nennen):
request.url
"/people.json"
Dies ist der Fall, wenn diese bestimmte Aktion ausgelöst wirdrequest.method
, was"GET"
in diesem Fall sein wird, daher derapp.get()
Aufruf.request.headers
mit Elementen wierequest.headers.accept
, mit denen Sie bestimmen können, welche Art von Browser die Anforderung gestellt hat, welche Art von Antworten verarbeitet werden können, ob die HTTP-Komprimierung verstanden werden kann oder nicht usw.request.query
(z. B./people.json?foo=bar
würde dazu führenrequest.query.foo
, dass die Zeichenfolge enthalten ist"bar"
).Um auf diese Anfrage zu antworten, verwenden Sie das Antwortobjekt, um Ihre Antwort zu erstellen. So erweitern Sie das
people.json
Beispiel:quelle
req
undres
Struktur ist es in Express docs beschrieben:req
: expressjs.com/en/api.html#req ,res
: expressjs.com/en/api.html#resIch habe einen Fehler in Dave Wards Antwort bemerkt (vielleicht eine kürzliche Änderung?): Die Parameter der Abfragezeichenfolge sind in
request.query
, nichtrequest.params
. (Siehe https://stackoverflow.com/a/6913287/166530 )request.params
Standardmäßig ist der Wert aller "Komponentenübereinstimmungen" in Routen angegeben, d. hund wenn Sie express so konfiguriert haben, dass es seinen bodyparser (
app.use(express.bodyParser());
) auch mit POST-Formulardaten verwendet. (Siehe So rufen Sie POST-Abfrageparameter ab. )quelle
Anfrage und Antwort.
Um das zu verstehen
req
, probieren Sie es ausconsole.log(req);
.quelle