Tengo una API que periódicamente realiza una solicitud a RESTAPI y almacena los datos en mi base de datos, ahora quiero agregar una nueva función para ciertos datos: descargar algunos datos mediante una solicitud a mi API, luego, mi API realiza otra solicitud a la RESTAPI, pero no quiero que estos datos se almacenen en mi base de datos, quiero que se descarguen como JSON o CSV.
Logré crear la solicitud, codifiqué la solicitud a RESTAPI y logré colocar el JSON en una variable con todos los datos. Estoy atascado allí. ¿Cómo hago para que estos datos se descarguen en un directorio?
Estoy usando javascript nodeJS con bent , getJSON , mssql , https .
el código de la función:
async function descargarDatosOpendata(anioIni, anioFin, Indicativo){ try{ while(anioIni == anioFin || anioIni < anioFin){ console.log("first"); var http = require("https"); var options = { "method": "GET", "hostname": "opendata.aemet.es", "path": "/opendata/api/valores/climatologicos/mensualesanuales/datos/anioini/"+ anioIni +"/aniofin/"+ anioIni +"/estacion/"+ Indicativo +"", "headers": { "cache-control": "no-cache", "api_key": "MYKEY" } }; console.log("second"); var req = http.request(options, function (res) { console.log("tercera"); var chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", async function () { console.log("endChunk"); var body = Buffer.concat(chunks); console.log(body); var bodyString = body.toString(); bodyJSON = JSON.parse(bodyString); console.log(bodyJSON); console.log(bodyJSON.datos); if (bodyJSON.estado == 200 && bodyJSON.descripcion == "exito") { let obj = await getJSON(bodyJSON.datos); console.log(obj) } }); }); anioIni++; req.end(); } } catch (err) { console.log(err); }}
obj log son los datos en formato json: [{data}]
Si este código se ejecuta en Node, debe usar el módulo Node fs . El método appendFile creará un nuevo archivo o lo agregará si ya existe. Más información sobre fs
Código de ejemplo
var fs = require('fs'); fs.appendFile('mynewfile1.txt', 'Hello content!', function (err) { if (err) throw err; console.log('Saved!'); });