Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

322
Vistas
js import csv, use el segundo elemento como argumento en el comando curl externo

atrapado entre el código. Por favor ayuda

Historia del usuario:

El usuario de la línea de comando desea usar el script js para abrir un archivo csv (ejemplo adjunto), y para todos los elementos dev_no (más de 5000) leídos desde el archivo, ejecute un comando shell curl

número de serie escribe dev_no accu_pulses última actualización depósito
1833002293 30 4437e68af4e01038 10 2021-09-08 11:01:20 falso

Código para ejecutar el comando curl: ¡Funciona!

 const { stdout } = require('process'); const util = require('util'); const exec = util.promisify(require('child_process').exec); const header = 'curl -X GET -k \"XXXX/api/v1/device?id=' const end = '&access_token=XXXX\"' async function CurlExample(DeviceId) { const { stdout, stderr } = await exec(header+DeviceId+end); console.log('stdout:', stdout); console.error('stderr:', stderr); } const dev_no= [ "4437e68af4e01027" , ] for (let i = 0; i < eUID.length; i++) { CurlExample(eUID[i],stdout) }

El código para la importación de CSV: utilizado como guía https://sebhastian.com/javascript-csv-to-array/ funciona bien, pero luego estoy atascado en cómo abordar el elemento correcto de la matriz de datos y pasarlo como argumento al Curl comando de concha!

Pregunte: ayude a ejecutar la historia de usuario agregando el comando que falta. Bonificación adicional: ¡proponga un código mejor!

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo descubrí por mi cuenta, probablemente no sea la solución más elegante que existe, debido a muchas importaciones, pero funciona, siempre y cuando solo haya una columna en el archivo... ¡Comentarios y mejoras son bienvenidos!

 const csv = require('csv-parser') const fs = require('fs') const util = require('util'); const fileNames = process.argv.splice(2); const { stdout } = require('process'); const exec = util.promisify(require('child_process').exec); const header = 'curl -X GET -k \"https://XXXX/api/v1/device?id=' const end = '&access_token=XXXXXX\"' const results = []; async function CurlExample(DeviceId) { const { stdout, stderr } = await exec(header+DeviceId+end); console.log('stdout:', stdout); console.error('stderr:', stderr); } console.log(fileNames) fs.createReadStream(`${fileNames}`) //fs.createReadStream('data.csv') .pipe(csv()) .on('data', (data) => results.push(data)) .on('end', () => { for (let i=0; i < results.length; i++) { console.log(results[i].dev_eui) ; CurlExample(results[i].dev_eui, stdout) ; } });

para llamar al script:

 $ node <script name> data.csv
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda