8

Node/Express は初めてです。GET パラメータは次のようにキャプチャできることがわかります。

app.get('/log/:name', api.logfunc);

次のように投稿します。

app.post('/log', ... (フォーム変数は req.body で使用できます。)

私は app.all を認識していますが、app.all を使用するときに GET と POST のすべての変数を取得できる単一の方法はありますか? (私は PHP で $_REQUEST に慣れすぎています!:)

どうも、

4

2 に答える 2

23

パラメーターを渡す 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 || {}).

ライブラリを使用せず、独自の方法でオブジェクトを拡張したい場合は、このブログ投稿をご覧ください。

于 2012-07-26T06:16:09.907 に答える