私はNode.jsとExpressを使い始めて、呼び出しアプリのメソッドを変更すると、パラメーターがreq.param([name])
、req.body.[name]
またはreq.query
にあることを確認しています。方法によって異なります。今私の質問は2つです。
編集:@ jfriend00の答えの後、私は私のジレンマをよりよく説明します:私はAPIを開発していて、さまざまなメソッドで渡されたデータをチェックできるモジュールを作成しますが、今のところ次のようなものを書いています:
if(req.method== 'PUT' || req.method=='POST')
x=req.body.x;
else
x=req.query.x;
そして私は最初に次のようなことをします:
if(req.query!=null)
req.body=req.query;
したがって、後は、すべてのチェックでreq.bodyを制御し、他の制御は制御しません。それは悪い習慣だと思いますか?
3つのプロパティはすべて、さまざまなソースから読み込まれます。
req.query
は、 http://foo.com/somePath?name=ted などのURLのクエリパラメータから取得されます。ここで、req.query.name === "ted"
です。
req.params
は、/song/:songid
などのルート定義のパラメーターに一致するURLのパスセグメントから取得されます。したがって、その指定と/song/48586
、次にreq.params.songid === "48586"
などのURLを使用するルートを使用します。
req.body
プロパティは、フォームデータ(ボディコンテンツで送信される)がボディタグのプロパティに解析されたフォームポストから取得されます。
関心のあるデータのソースに一致する適切なプロパティを使用します。
Req.params、req.query、およびreq.bodyが存在するのはなぜですか?
3つの異なるタイプのデータへの簡単なアクセスを提供するため。