クライアントからサーバーにデータを送信するときに、node.js で request.body または request.params を使用することに好みがあるかどうか疑問に思っていますか?
3 に答える
URL よりも本文に、より多くの (多様な) データを収めることができます。本文には任意の文字列 (特殊文字) を渡すことができますが、それらを URL にエンコードすると、ステータス 414 (Request-URI Too Long) に対して脆弱になります。また、配列や複雑なオブジェクトを渡すときに本体を使用する方がはるかに簡単です:)
get を実行するときは params を使用し、post、put、および patch には body を使用することをお勧めします。
サンプルゲット
app.get "/api/items/:id", (req, res) ->
itemController.getItem req.params.id, (item, error) =>
if !error
res.send 'item': item
else
res.send 'error: error
サンプル投稿
app.post "/api/items", (req, res) ->
itemController.saveItem req.body, (item, error) =>
if !error
res.send 'item': item
else
res.send 'error: error
同様に検証を追加することもできますが、これが私がすべてのエンドポイントを書いてきた方法です。
この質問が出されてから 4 年以上が経ちましたが、この投稿に出くわした他の誰かがこの概念をよりよく理解するためのより多くの情報を持っていることを確認するために、私はまだチャイムを鳴らしています.
req.body と req.params サーバーの 2 つの異なる目的。
サーバーへの「POST」リクエストのように、サーバーにデータを送信する必要がある場合(データを保存するためなど)に req.body を使用します。たとえば、次のことを確認してください。
ブログ投稿を保存するために、mongodb に対して「POST」リクエストを実行しています。このシナリオでは、リクエストの本文に含まれるデータを取得して、データベースに送信する必要があります。ここでは req.body を使用します
app.post("/blog", function(req, res){
var data = req.body.blog;
.... // code to send data to the db
....
});
req.params は、URL から「param」を抽出する場合に使用されます。URL の一部である「id」を抽出したいとしましょう。たとえば、「id」は質問の後の次の URL の番号です。stackoverflow.com/questions/18187424/
app.get("/xyz/questions/:id", function(req, res){
var useId = req.params.id;
...
...
});
それが役に立てば幸い。
ありがとう、カルティック