Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将数据从变量流到PUT请求_Node.js_Stream - Fatal编程技术网

Node.js 将数据从变量流到PUT请求

Node.js 将数据从变量流到PUT请求,node.js,stream,Node.js,Stream,我一直想做的是发出GET请求,然后操作变量中的JSON数据存储,然后发出PUT请求。似乎找不到这方面的文档。也许我想得不对。一旦我有了变量,我想做如下的事情。我将GET请求中的所有数据保存到outputV3.json文件中 var outputJson = fs.readFileSync("outputV3.JSON"); outputJson = JSON.parse(outputJson); (function () { for (let i = 0; i < outputJso

我一直想做的是发出
GET
请求,然后操作变量中的JSON数据存储,然后发出
PUT
请求。似乎找不到这方面的文档。也许我想得不对。一旦我有了变量,我想做如下的事情。我将
GET
请求中的所有数据保存到
outputV3.json
文件中

var outputJson = fs.readFileSync("outputV3.JSON");
outputJson = JSON.parse(outputJson);

(function () {
  for (let i = 0; i < outputJson.objects.length; i++) {
    let postId = outputJson.objects[i].id.toString();
    let newSlug = outputJson.objects[i].slug.replace("blog/", "");
    let urlToPut = "https://api.hubapi.com/content/api/v2/blog-posts?limit=1000&hapikey=" + process.env.HAPIKEY;

    urlToPut = urlToPut.replace("blogPostId", postId);

    let put_data = JSON.stringify({
      "slug": newSlug
    });

    put_data.put(urlToPut);
  }
});
var outputJson=fs.readFileSync(“outputV3.JSON”);
outputJson=JSON.parse(outputJson);
(功能(){
for(设i=0;i
如果您需要将数据从一个文件传输到另一个请求,您应该从该文件创建数据流,并将其传输到目标:

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);

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

< P>如果我想使用请求约定,我可以做一些类似于

的事情吗?
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))
});
let选项={
uri:'https://api.hubapi.com/content/api/v2/blog-posts?limit=1000&hapikey=“+process.env.HAPIKEY,
方法:“获取”
转换:功能(身体、反应){

回报(VAR i=0;IHI @ James Zich。如果这个或任何其他答案已经解决了你的问题,请通过点击复选标记来考虑。这向更广泛的社区表明,你已经找到了解决方案并给回答者和你自己带来了一些声誉。没有义务这样做,但是,我注意到在整个帖子历史中,你是这样的。他们根本不做任何回答,这不是他们的运作方式。