In https.request(options,(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)=>{})
- это асинхронный вызов, поэтому console.log(results)
в вашем коде будет выполняться даже до завершения вызовов API.