Master de II. ULL. 1er cuatrimestre
Escriba un programa Node.js que usando fs.readFile
lea en paralelo un conjunto de ficheros pasados en vía de comandos y produzca como salida la concatenación de los mismos en el orden especificado. Evite usar fs.readFileSync
y use fs.readFile(path[, options], callback)
:
1
$ concat -f one.txt -f two.txt -f three.txt -o salida.txt
Con commander es posible indicar una opción que se puede repetir
1
2
3
4
5
6
7
const program = require('commander');
function collect(value, previous) {
return previous.concat([value]);
}
program.option('-c, --collect <value>', 'repeatable value', collect, []);
program.parse(process.argv);
console.log(program.collect)
1
2
$ node repeatable-option-commander.js -c a -c b -c c
[ 'a', 'b', 'c' ]
Async
. Considere la posibilidad de excepciones debidas a que alguno de los ficheros no existaAsync
¿Cómo lo haría?asyncMap
que funcione como el map
del módulo Async
:1
asyncMap(inputs, (item, cb) => fs.readFile(item, cb), (err, contents) => { ... });
Versiones usadas de los módulos en los ejemplos:
1
➜ daniel-alu0101040882 git:(main) ✗ jq '.dependencies' package.json
1
2
3
4
{
"async": "^3.2.0",
"commander": "^6.2.0"
}