2014-01-10 66 views
5

我需要在節點中使用「require」npm命中api。 api需要原始數據(不能放入字段)。 如何使用請求npm執行此操作?如何在nodejs中發送帶有請求npm的原始put數據

例如原始數據放在我需要發送:

var body = { 
    "id": 123, 
    "squares": [ 
     { 
      square_id: 345, 
      color: "#ccc" 
     }, 
     { 
      square_id: 777, 
      color: "#fff" 
     } 
    ] 
} 

我想這一點,但它不工作:

 request({ 
      method: "PUT", 
      uri: UPDATE_GAME, 
      multipart: [{ 
       'content-type': 'application/json', 
       body: JSON.stringify(body) 
      }] 
     } 

回答

1

body是一個JavaScript對象。你聲稱要發送JSON。

傳遞給JSON.stringify()

+0

好吧,我改寫(munging)的代碼,它張貼在這裏的時候犯了一個錯誤。它確實使json變得串聯起來。修復了原來的帖子... – malukisses

8

如果您深入瞭解代碼,您會發現對於最基本的POST/PUT操作,您可以使用json選項參數。它還會爲你做的JSON.stringify() - 你的代碼變得簡單:

request({ 
    method: "PUT", 
    uri: UPDATE_GAME, 
    json: body 
}); 
+0

如何在執行後從put調用中獲取正文,響應和錯誤? @Michael Angstadt – ram

+0

你可以傳遞匹配cb = function(err,response,body){}的回調的第二個參數,這樣請求(opts,cb) –

+0

@Michael Angstadt在PUT和PATCH請求中有差異, PUT:將整個對象放入正文並更新所有字段。 補丁:只接受那些你想要更新的屬性,在這種情況下,json的整個對象不需要發送補丁請求。 我們如何將數據發送到補丁請求? – Tamesh

相關問題