パラメーターを渡す 3 つの異なる方法を扱っています。
1) パス パラメーターreq.param
。ルートでプレフィックス付きのコンポーネントまたは正規表現キャプチャを使用するときに Express のルーターがキャプチャします。これらは、GET 要求と POST 要求の両方に存在する可能性があります。
2)ミドルウェアreq.query
を使用する場合にキャプチャされる URL クエリ文字列パラメーター。express.query
これらは、GET 要求と POST 要求の両方に存在する場合もあります。
3)ミドルウェアreq.body
を使用する場合に取り込まれる本文パラメーター。これらは、"x-www-form-urlencoded"express.bodyParser
を持つ POST リクエストにのみ存在します。Content-Type
したがって、3 つのオブジェクト (存在する場合) をすべて 1 つにマージする必要があります。これを行うためのネイティブObject
な方法はありませんが、一般的な回避策がたくさんあります。たとえば、underscore.jsライブラリは次のextend
ように記述できる関数を定義します。
req.params=_.extend(req.params || {}, req.query || {}, req.body || {}).
ライブラリを使用せず、独自の方法でオブジェクトを拡張したい場合は、このブログ投稿をご覧ください。