let http = require('http'); let btcCache = {}; exports.doBTC = function(req, res) { console.log('Bitcoin request'); function btcQuery(callback, r) { var req = r; var options = { host: 'api.coindesk.com', // port: 80, path: '/v1/bpi/currentprice.json', // method: 'GET', headers: { /* 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(data)*/ } }; try { http.request(options).on('response', function(response) { var data = ''; response.on('data', function(chunk) { data += chunk; }); response.on('end', function() { callback(JSON.parse(data), r); }); response.on('error', function(e) { console.error(e); }); }).end(); } catch (e) { console.error(e); } } let now = new Date(); if (now - GLOBAL.lastcheck > (59000 )) { btcQuery(function(a) { // console.log(a); console.log('Got btc data.'); btcCache = a; GLOBAL.lastcheck = now; res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify(btcCache)); }, res); } else { console.log('Using cache'); res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify(btcCache)); } };