Żądanie będzie obiektem o takich właściwościach (żeby wymienić tylko kilka):
request.url, która nastąpi "/people.json"po uruchomieniu tej konkretnej akcji
request.method, który będzie "GET"w tym przypadku, stąd app.get()połączenie.
Tablica nagłówków HTTP request.headers, zawierająca elementy request.headers.accept, których można użyć, aby określić, jakiego rodzaju przeglądarka wysłała żądanie, jakiego rodzaju odpowiedzi może obsłużyć, czy jest w stanie zrozumieć kompresję HTTP itp.
Tablica parametrów ciągu zapytania, jeśli takie istnieją, request.query(np. /people.json?foo=barSpowoduje request.query.foozawarcie ciągu "bar").
Aby odpowiedzieć na to żądanie, użyj obiektu odpowiedzi do zbudowania odpowiedzi. Aby rozwinąć na people.jsonprzykładzie:
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);});
Tak, to było świetne powinno być na stronie głównej witryny express.js.
Anton
expressnoob - odpowiedź jest obiektem, podobnie jak obiekt żądania, ale zawiera pola i metody odnoszące się do odpowiedzi. Zwykle stosowana jest metoda send () odpowiedzi. send () akceptuje całą masę różnych typów dla pierwszego argumentu, który staje się treścią odpowiedzi HTTP, a drugim argumentem jest kod odpowiedzi HTTP.
Zauważyłem jeden błąd w odpowiedzi Dave'a Warda (być może ostatnią zmianę?): Parametry łańcucha zapytania są request.query, nie request.params. (Zobacz https://stackoverflow.com/a/6913287/166530 )
request.params domyślnie jest wypełniona wartością dowolnego „dopasowania elementów” w trasach, tj
a jeśli skonfigurowałeś express do korzystania z jego bodyparser ( app.use(express.bodyParser());) również z formdata POST. (Zobacz Jak pobrać parametry zapytania POST? )
req
=="request"
//res
=="response"
Odpowiedzi:
req
to obiekt zawierający informacje o żądaniu HTTP, które wywołało zdarzenie. W odpowiedzireq
użyjeszres
do odesłania żądanej odpowiedzi HTTP.Te parametry można nazwać dowolnymi. Możesz zmienić ten kod na ten, jeśli jest bardziej przejrzysty:
Edytować:
Powiedz, że masz tę metodę:
Żądanie będzie obiektem o takich właściwościach (żeby wymienić tylko kilka):
request.url
, która nastąpi"/people.json"
po uruchomieniu tej konkretnej akcjirequest.method
, który będzie"GET"
w tym przypadku, stądapp.get()
połączenie.request.headers
, zawierająca elementyrequest.headers.accept
, których można użyć, aby określić, jakiego rodzaju przeglądarka wysłała żądanie, jakiego rodzaju odpowiedzi może obsłużyć, czy jest w stanie zrozumieć kompresję HTTP itp.request.query
(np./people.json?foo=bar
Spowodujerequest.query.foo
zawarcie ciągu"bar"
).Aby odpowiedzieć na to żądanie, użyj obiektu odpowiedzi do zbudowania odpowiedzi. Aby rozwinąć na
people.json
przykładzie:źródło
req
ires
strukturę, jest to opisane w Dokumentach ekspresowych:req
: expressjs.com/en/api.html#req ,res
: expressjs.com/en/api.html#resZauważyłem jeden błąd w odpowiedzi Dave'a Warda (być może ostatnią zmianę?): Parametry łańcucha zapytania są
request.query
, nierequest.params
. (Zobacz https://stackoverflow.com/a/6913287/166530 )request.params
domyślnie jest wypełniona wartością dowolnego „dopasowania elementów” w trasach, tja jeśli skonfigurowałeś express do korzystania z jego bodyparser (
app.use(express.bodyParser());
) również z formdata POST. (Zobacz Jak pobrać parametry zapytania POST? )źródło
Żądanie i odpowiedź.
Aby to zrozumieć
req
, wypróbujconsole.log(req);
.źródło