【问题标题】:How do send raw put data with request npm in nodejs如何在nodejs中使用请求npm发送原始数据
【发布时间】:2014-01-10 22:53:28
【问题描述】:

我需要在 node.js 中使用“require”npm 来访问 api。 api 需要原始 put 数据(不是 put 字段)。 如何使用 request npm 做到这一点?

我需要发送的原始数据示例:

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)
            }]
        }

【问题讨论】:

    标签: javascript node.js request npm put


    【解决方案1】:

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

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

    【讨论】:

    • put调用执行后如何获取body、response和error? @Michael Angstadt
    • 您可以传递与 cb = function(err, response, body){} 匹配的回调的第二个参数,例如 request(opts, cb)
    • @Michael Angstadt PUT 和 PATCH 请求存在差异,PUT:获取正文中的整个对象并更新所有字段。 PATCH:仅获取您想要更新的属性,在这种情况下,整个 json 对象无需发送补丁请求。我们如何将数据发送到补丁请求中?
    【解决方案2】:

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

    通过JSON.stringify()传递它。

    【讨论】:

    • 对,我在修改代码时犯了一个错误,把它贴在这里。它确实对json进行了字符串化。修复了原来的帖子...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2022-01-22
    • 2020-08-22
    • 1970-01-01
    • 2020-11-04
    相关资源
    最近更新 更多