如何使用Node.js中的request npm发送原始put数据

6

我需要在Node中使用“require”npm来调用API。该API需要原始的put数据而非put字段。

我如何使用request 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)
            }]
        }
2个回答

9

如果你深入研究代码,你会发现对于最基本的POST/PUT操作,你可以使用json选项参数。它还会为您执行JSON.stringify() - 您的代码变得非常简单:

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

如何在执行PUT调用后获取其正文、响应和错误?@Michael Angstadt - ram
你可以传递一个回调函数的第二个参数,该参数与cb = function(err, response, body){}相匹配,例如request(opts, cb)。 - Michael Angstadt
@Michael Angstadt,PUT请求和PATCH请求有所不同,PUT:在请求体中获取整个对象并更新所有字段。PATCH:仅获取要更新的属性,在这种情况下,不需要在补丁请求中发送整个JSON对象。我们如何将数据发送到补丁请求中? - Tameshwar

1

body 是一个 JavaScript 对象。你声称要发送 JSON。

通过 JSON.stringify() 进行传递。


对不起,在整理代码发布到这里时,我犯了一个错误。它确实将json转换为字符串。我已经修复了原始帖子... - malukisses

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接