Querrá utilizar la matriz process.argv
para acceder a los argumentos de la línea de comandos para obtener el nombre de archivo y FileSystem module (fs) para leer el archivo. Por ejemplo:
// Make sure we got a filename on the command line.
if (process.argv.length < 3) {
console.log('Usage: node ' + process.argv[1] + ' FILENAME');
process.exit(1);
}
// Read the file and print its contents.
var fs = require('fs')
, filename = process.argv[2];
fs.readFile(filename, 'utf8', function(err, data) {
if (err) throw err;
console.log('OK: ' + filename);
console.log(data)
});
romper ese abajo un poco para usted process.argv
por lo general tienen longitud dos, siendo el intérprete de "nodo" y la primera el elemento cero siendo el guión que el nodo se está ejecutando actualmente, artículos después de que eran pasado en la línea de comando. Una vez que haya sacado un nombre de archivo de argv, puede usar las funciones del sistema de archivos para leer el archivo y hacer lo que quiera con su contenido. ejemplos de uso se vería así:
$ node ./cat.js file.txt
OK: file.txt
This is file.txt!
[Editar] Como @wtfcoder menciona, utilizando el método de "fs.readFile()
" podría no ser la mejor idea porque va a amortiguar todo el contenido del archivo antes de ceder a la función de devolución de llamada. Este almacenamiento en memoria intermedia podría potencialmente usar mucha memoria, pero, lo que es más importante, no aprovecha una de las funciones principales de node.js: E/S asincrónica y con evented.
La forma de "nodo" para procesar un archivo grande (o cualquier archivo, realmente) sería usar fs.read()
y procesar cada porción disponible, ya que está disponible desde el sistema operativo. Sin embargo, leer el archivo como tal requiere que usted haga su propio (posible) análisis/procesamiento incremental del archivo y cierta cantidad de almacenamiento en memoria intermedia puede ser inevitable.
Si usted se encuentra añadiendo más opciones en la línea de comandos, puede utilizar [Optimist] (https://github.com/substack/node-optimist) – Jess
http://stackoverflow.com/questions/6156501/read-a-file-one-line-at-a-time-in-node-js?rq=1 muestra otra forma de leer un archivo de texto –