将数据从变量流式传输到PUT请求

时间:2017-10-15 18:20:02

标签: node.js stream

我一直在做的是发出malloc请求,然后操纵变量中的JSON数据存储,然后发出GET请求。似乎无法找到关于此的文档。也许我在考虑这个错误。一旦我有变量,我想做类似下面的事情。我将PUT请求中的所有数据都保存到GET文件中。

outputV3.json

2 个答案:

答案 0 :(得分:1)

如果我想使用request-promise,我可以执行以下操作

let options = {
uri: 'https://api.hubapi.com/content/api/v2/blog-posts?limit=1000&hapikey=' + process.env.HAPIKEY,
method: 'GET'
transform: function (body, response) {
    return for(var i=0; i<outputJson.objects.length; i++) {
    var postId = outputJson.objects[i].id.toString();
    var newSlug = outputJson.objects[i].slug.replace("blog/","");
}
};

rp(options)
.then(function(removedSlug) {
.pipe(request.put('https://api.hubapi.com/content/api/v2/blog-
posts/blogPostId?hapikey=' + process.env.HAPIKEY))
});

答案 1 :(得分:0)

如果您需要将数据从文件流式传输到请求,则应从文件中创建read stream并将pipe创建到目的地:

const dataStream = fs.createReadStream('outputV3.JSON');

const options = {
  hostname: 'www.example.com',
  port: 80,
  path: '/destination',
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  }
};

const req = http.request(options, (res) => {
  // response processing...
});

dataStream.pipe(req);

如果您需要更高级的流式逻辑,您应该考虑在可读文件流和可写请求流之间放置一个自定义Transform流。