Node.js 当调用api在nodejs中使用https.request时,如何将数据获取到对象

Node.js 当调用api在nodejs中使用https.request时,如何将数据获取到对象,node.js,graphql,nestjs,Node.js,Graphql,Nestjs,当调用一个api时,我尝试将数据获取到变量“results”中,但该api是另一个,但未被识别 let results; const req = https.request(options, (res) => { res.setEncoding('utf8'); res.on('data', (body) => { results = JSON.parse(body).payUrl; }); res.on('end

当调用一个api时,我尝试将数据获取到变量“results”中,但该api是另一个,但未被识别

let results;
const req = https.request(options, (res) => {

      res.setEncoding('utf8');
      res.on('data', (body) => {
         results = JSON.parse(body).payUrl;
      });

      res.on('end', () => {
         console.log('No more data in response.');
     });
});
console.log(results);
https中的
results=unidentified

。请求(选项,(res)=>{})
res
是一个流,将在事件“data”的数据块中发出数据。因此,您无法一次性获得完整的数据。您将代码更改为以下内容:

  let results;
  let url;
  const req = https.request(options, (res) => {
          res.setEncoding('utf8');
          let body="";
          res.on('data', (chunk) => {
           body = body+chunk   // aggregate data
          })
          res.on('end', () => {
           // once data is completly fetched do JSON.parse();
            console.log('No more data in response.')
            results = JSON.parse(body);
            console.log(results)
            url =  results.url
            console.log(url);
         })

      });
      req.on('error', (e) => {
         // listen for error 
          console.log(e.message);
       });

另外,
https.request(options,(res)=>{})
是异步调用,因此在api调用完成之前,代码中的
console.log(results)
将被执行。

i user graphql,并且我希望在graphql“”上显示数据,因此我需要自定义数据显示graphql