Estoy tratando de recorrer varios archivos con fs.createReadStream y no sé cómo leer el segundo archivo.
const fs = require('fs') const csv = require('csv-parse') const parser = csv({ ... }) const files = process.argv.slice(2) async function analyzeFiles () { for (const file of files) { const string = file console.log(`Analyzing ${file}.`) await runFile(file, string) console.log(`Analyzed ${file}.`) } } async function runFile (filepath, string) { return new Promise(function (resolve, reject) { const shimmedData = {} let fileName = '' fs.createReadStream(filepath) .pipe(parser) .on('data', (row) => { // ... fileName = 'something dynamic from row' shimmedData[index] = row // Or something similar, not sure this matters }) .on('error', (e) => { console.log('BONK', e) }) .on('end', () => { fs.writeFile(`${fileName}.json`, JSON.stringify(shimmedData), (err) => { if (err) { console.log(err) reject(err) } else { console.log('File written successfully.') resolve() } }) }) }) } analyzeFiles() Y luego ejecuto node script.js file1.txt file2.txt file3.txt
Cuando ejecuto esto, solo se guardará el primer archivo. Al examinarlo con los registros de la consola, parece que para el segundo archivo nunca se llama a fs.createReadStream .
¿Qué me estoy perdiendo?