2013-08-12 14 views

答えて

4

より多くの(多様な)データをURLよりも身体に合わせることができます。本文には任意の文字列(特殊文字)を渡すことができますが、URLでエンコードすると状態414(Request-URI Too Long)に脆弱になります。配列や複雑なオブジェクトを渡すときにボディを使う方がはるかに簡単です:)

5

getを実行するときにはparamsを使うべきですが、ポスト、put、deleteにはボディを使うべきでしょう。

サンプルは

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 

取得あなたは、同様の検証を追加することになりますが、これは、私は私のすべてのエンドポイントを書いているかとなっています。

+0

私は、削除要求は一般的に体を含んでいないと思います。 Google App Engineはこれを少なくとも実施します。 – bgenchel

2

この質問が尋ねられてから4年以上が経過していますが、私はまだこの記事につまずいている誰かがこの概念をよりよく理解するための情報を持っていることを確認しています。

req.bodyとreq.paramsサーバーの2つの異なる目的。

サーバーへの「POST」リクエストのように、データをサーバーに送信する必要がある場合(req.bodyを使用するなど)、req.bodyを使用します。例えば、以下をチェックしてください:

ブログ投稿を保存するためにmongodbに "POST"リクエストをしています。このシナリオでは、要求の本文にデータが入ってきて、そのデータをdbに送信する必要があります。ここではreq.bodyを使用します。

app.post("/blog", function(req, res){ 
    var data = req.body.blog; 
    .... // code to send data to the db 
    .... 
}); 

urqから「param」を抽出する場合は、req.paramsが使用されます。あなたがurlの一部である "id"を抽出したいとしましょう。例えば、「ID」について質問した後、以下のURLで数 stackoverflow.com/questions/18187424/

app.get("/xyz/questions/:id", function(req, res){ 
    var useId = req.params.id; 
    ... 
    ... 
}); 

希望があり、それが役立ちます。

おかげで、 Kartik

関連する問題