In der folgenden Express-Funktion:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
Was sind reqund res? Wofür stehen sie, was meinen sie und was tun sie?
Vielen Dank!
In der folgenden Express-Funktion:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
Was sind reqund res? Wofür stehen sie, was meinen sie und was tun sie?
Vielen Dank!
Antworten:
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:
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
Bearbeiten:
Angenommen, Sie haben diese Methode:
app.get('/people.json', function(request, response) { });
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 der app.get()Aufruf.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.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);
});
reqund resStruktur ist es in Express docs beschrieben: req: expressjs.com/en/api.html#req , res: expressjs.com/en/api.html#res
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
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
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"