使用节点请求库发布原始数据也包括换行符

时间:2017-06-21 10:02:05

标签: node.js node-request

我需要使用节点request库发出POST请求,其中正文将包含原始数据,如下所示:

{ "delete" : { "_index" : "foo", "_type" : "bar", "_id" : "1" } }
{ "delete" : { "_index" : "foo", "_type" : "bar", "_id" : "2" } }
\n

请注意,我必须在最后一个对象结束后添加换行符,我只是添加了\n来说明这一点。

我之前已经使用了请求库充足的时间,但对于正文中的常规单个JSON对象。

在这种情况下,它的倍数,当发送到我需要命中的端点时,每个都需要在一个单独的行上。

我正在努力弄清楚在提供给请求调用的选项中在body param上使用什么

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

这里有一些工作代码,涵盖了将对象数组转换为带有尾部换行符的换行符分隔的JSON。它还显示了如何使用POST库在request请求中发送原始字符串。希望其中一个内容涵盖您遇到的问题。如果没有,请澄清。

const request = require("request");

const url = "<REDACTED>";
const things = [
    {
        delete: {
            _index: "foo",
            _type: "bar",
            _id: "1",
        },
    },
    {
        delete: {
            _index: "foo",
            _type: "bar",
            _id: "2",
        },
    },
];

request.post(url, {
    body: things.map(JSON.stringify).join("\n") + "\n"
}, (err, response) => {
    if (err) return console.error(err);
    console.log(response.statusCode);
});