ExpressJSのreq.queryとreq.param


93

Expressreq.queryとの主な違いreq.param

  • 両者はどのように違うのですか
  • いつ、どのような場合に使用するか

クライアントがリクエストでAndroid(Key、value)ペアを送信するとします........どちらを使用しますか?

[編集]

androidがPOSTリクエストを送信するとします->意図は(Key、Value)をクライアントに送信することであり、サーバーはサーバーの値に基づいてデータベースクエリを実行し、JSON応答を返す必要があります

ルック::私は、参照プログラムのために、この質問で:シンプルExpressプログラムの結果を照会するため


1
あなたが意味するかreq.queryreq.param
arb 2013

1
はい !.........私も質問を変更しました

回答:


119

req.query クエリ文字列が解析された後、JSオブジェクトを返します。

?/ユーザー名=トム&年齢= 55 -req.queryもたらすであろう{name:"tom", age: "55"}

req.params一致したルートのパラメータを返します。あなたのルートがある場合は/ユーザー/:IDとあなたがに要求します/ユーザー/ 5 -req.paramsもたらすであろう{id: "5"}

req.paramリクエストからパラメータを取り除く関数です。このすべてはここで見つけることができます

更新

動詞がaでPOST、を使用している場合はbodyParser、関数でフォーム本体を取得できるはずですreq.body。これは、POSTedフォームの解析されたJSバージョンになります。


おかげで、クライアントがリクエストでAndroid(Key、value)ペアを送信するとします........ Expressでどちらを使用しますか?

問題のリクエストを見ずにこの質問に答える方法はありません。
arb 2013

更新された質問を見てください.....私が投稿した質問の1つで、私が明示的に使用しているプログラムへのリンクについても言及しました.....フィードバックを追加してください!

@Iplayこの回答が役に立った場合は、この質問への回答としてマークすることを検討してください。ありがとう。
arb 2014

16

req.queryサーバーに送信されるクエリ文字列(例:/page?test = 1req.paramは、ハンドラーに渡されるパラメーターです。

app.get('/user/:id', handler);、に行くと/user/blahreq.param.id戻りblahます;


おかげで、クライアントがリクエストでAndroid(Key、value)ペアを送信するとします........どちらを使用しますか?

1
あなたが何について話しているのreq.dataかわかりません。POSTリクエストの場合は、GETの場合は、になりますreq.param
OneOfOne 2013

こんにちは、未定義に対してreq.paramsをチェックする方法を教えてください。
Arj 1411 2017年

@AnandRajは空になるので、確認してくださいc.Param("id") == ""
OneOfOne 2017年

@OneOfOne、お返事ありがとうございます。確認させていただき、更新します
Arj 1411 2017年

14

以下を使用することをお勧めします

req.param('<param_name>')

req.param( "")は次のように機能します

ルックアップは次の順序で実行されます。

req.params
req.body
req.query

明確にするために、req.body、req.params、およびreq.queryへの直接アクセスを優先する必要があります。ただし、各オブジェクトからの入力を本当に受け入れる場合を除きます。

参照:http//expressjs.com/4x/api.html#req.param


1
こんにちは、未定義に対してreq.paramsをチェックする方法を教えてください。
Arj 1411 2017年

@AnandRaj未定義とはどういう意味ですか?パラメータがわからないということですか?
Abhijit Gaikwad 2017年

私が意味したのは、req.paramsのタイプをチェックしたときに未定義と表示されているということです。私の目標は、req.params。<任意のURIパラメーター>がnullかどうかを確認することです
Arj 1411 2017年

@AnandRajコードを投稿していただけますか?次のコードは私のために機能しますvarexpress = require( 'express'); var app = express(); app.get( '/'、function(req、res){console.log(req.params); res.send(req.params);}); app.listen(3000);
Abhijit Gaikwad 2017年

@AnandRaj try if(reqParams.hasOwnProperty( 'deviceType')){}
Abhijit Gaikwad

11

パラメータを渡す

GET request to "/cars/honda" 

ホンダの車種のリストを返します

クエリを渡す

GET request to "/car/honda?color=blue"

ホンダの車のモデルのリストを返しますが、フィルター処理されているため、ストックカラーが青のモデルのみが返されます。

これらのフィルターをURLパラメーター(/ car / honda / color / blue)に追加することは意味がありません。これは、RESTによると、「青」の色に関する一連の情報を取得することを意味するためです。本当に必要なのはHondaモデルのフィルタリングされたリストであるため、クエリ文字列を使用して、返される結果をフィルタリングします。

クエリ文字列は、実際にはわずかに異なる形式の{key:value}ペアであることに注意してください:?key1 = value1&key2 = value2&key3 = value3。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.