I'm using node.js for converting text files to CSV. It works for one file, but when i try process more files fileDestination variable doesn't change. Why? Input files like this: r10_1C_BP1-11_e41-81_10_5X1x9_05_train2.res I got following console output:
./1_train.csv has been written successufully! r10_1C_BP1-11_e41-81_10_5X1x9_05_train2.res
./1_train.csv has been written successufully! r10_1C_BP1-11_e41-81_1_5X1x9_05_train2.res
/*
 * lee archivos *.dat y los convierte *.csv
 */
const fs = require('fs');
const inputDir = './';
const outputDir = './';
function readFiles(inputDir, onError) {
  fs.readdir(inputDir, function(err, filenames) {
    if (err) {
      onError(err);
      return;
    }
    filenames.forEach(function(inputFile) {
      // first we arre looking for "right" file name
      if (inputFile.search(/res/) != -1) {
        console.log('Starting processing ' + inputFile);
        convert2csv(inputFile, function(error) {
          throw err;
        });
      }
    });
  });
}
function convert2csv(filename, onError) {
  arrayFromFilename = filename.split('_');
  epoca = arrayFromFilename[4];
  trainORval = arrayFromFilename[7].replace('2.res', '');
  console.log("from convert " + filename + " " + epoca);
  fs.readFile(inputDir + filename, 'utf-8', function(err, content) {
    if (err) {
      onError(err);
      return;
    }
    content = content.replace(/^[^0].*\n/mg, '');
    arr = content.split('\n');
    pares = arr.filter(function(d, i) {
      return i % 2 == 1;
    });
    content = pares.join('\n');
    content = content.replace(/(^[\d.]*) ([\d.]*)/gm, '$1,$2');
    fileDestination = outputDir + epoca + '_' + trainORval + '.csv';
    console.log("filedestination :" + fileDestination);
    fs.writeFile(fileDestination, 'y,x\n', function(err) {
      if (err) {
        return console.error(err);
      }
      fs.appendFile(fileDestination, content, function(err) {
        if (err) {
          return console.error(err);
        }
        console.log(fileDestination + " has been written successufully!", filename);
      });
    });
  });
}