次のエクスプレス機能では:
app.get('/user/:id', function(req, res){
res.send('user' + req.params.id);
});
req
およびres
とは何ですか?彼らは何を意味し、何を意味し、何をしますか?
ありがとう!
req
は、イベントを発生させたHTTP要求に関する情報を含むオブジェクトです。 req
への応答では、res
を使用して、目的のHTTP応答を送り返します。
これらのパラメーターには任意の名前を付けることができます。より明確な場合は、このコードをこれに変更できます。
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
編集:
この方法があるとします:
app.get('/people.json', function(request, response) { });
リクエストは、次のようなプロパティを持つオブジェクトになります(例を挙げると)。
request.url
、この特定のアクションがトリガーされたときに"/people.json"
になりますrequest.method
、この場合は"GET"
になります。したがって、app.get()
呼び出しです。request.headers
のようなHTTPヘッダーの配列。request.headers.accept
などのアイテムを含み、どの種類のブラウザーがリクエストを作成したか、どの種類の応答を処理できるか、HTTP圧縮を理解できるかどうかなどを決定できます。request.query
にクエリ文字列パラメーターがある場合、その配列(たとえば、/people.json?foo=bar
は、ストリングrequest.query.foo
を含む"bar"
になります)。その要求に応答するには、応答オブジェクトを使用して応答を作成します。 people.json
の例を拡張するには:
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);
});
Dave Wardの答えに1つのエラーがあることに気付きました(おそらく最近の変更?):クエリ文字列パラメーターはrequest.query
ではなく、request.params
にあります。 ( https://stackoverflow.com/a/6913287/1665 を参照)
request.params
はデフォルトで、ルートの「コンポーネントの一致」の値で埋められます。
app.get('/user/:id', function(request, response){
response.send('user ' + request.params.id);
});
また、POSTされたformdataでbodyparser(app.use(express.bodyParser());
)を使用するようにexpressを構成した場合。 ( POSTクエリパラメータを取得する方法? を参照)
要求と応答。
req
を理解するには、console.log(req);
を試してください。