Estoy tratando de desarrollar una función en la nube de Google que realizará una solicitud https GET externa y devolverá el cuerpo de la respuesta al cliente.
Caudal:
exports.mockServer = (req, res) => { 'use strict'; var https = require('https'); var options = { host: 'example.com', path: '/path', headers: { 'accept': 'application/json', 'X-API-Key': 'XXXX' } }; if (req.method == 'GET'){ https.get(options, function (res) { var data = ''; res.on('data', function (chunk) { data += chunk; }); res.on('end', function () { if (res.statusCode === 200) { var res_body = JSON.parse(data); var results = JSON.stringify(res_body.result) console.log("results:"+results); } else { console.log('Status:', res.statusCode); } }); }).on('error', function (err) { console.log('Error:', err); }); } else { console.log("Wrong Method"); } res.end() }; Puedo registrar correctamente los resultados con console.log("results:"+results); pero no puedo averiguar cómo devolverlo al cliente. Todavía soy nuevo en esto y estoy aprendiendo, ¡así que muchas gracias de antemano por cualquier ayuda!
Publicar la solución de @YouthDev como respuesta:
Gracias a @DougStevenson y @Deko en los comentarios, cambié a una axios library y funciona de maravilla. Gracias a ambos por señalarme en la dirección correcta. A continuación se muestra el código de trabajo de axios.
exports.mockServer = (req, res) => { const axios = require('axios').create({ baseURL: 'https://example.com' }); return axios.get('/path',{ headers: {'accept': 'application/json','X-API-Key': 'XXXXXX'} }) .then(response => { console.log(response.data); return res.status(200).json({ message: response.data }) }) .catch(err => { return res.status(500).json({ error: err }) }) };