node.js

Lee un archivo en Node.js



(5)

1). Para ASync:

var fs = require(''fs''); fs.readFile(process.cwd()+"//text.txt", function(err,data) { if(err) console.log(err) else console.log(data.toString()); });

2). Para sincronización:

var fs = require(''fs''); var path = process.cwd(); var buffer = fs.readFileSync(path + "//text.txt"); console.log(buffer.toString());

Estoy bastante desconcertado con la lectura de archivos en Node.js.

fs.open(''./start.html'', ''r'', function(err, fileToRead){ if (!err){ fs.readFile(fileToRead, {encoding: ''utf-8''}, function(err,data){ if (!err){ console.log(''received data: '' + data); response.writeHead(200, {''Content-Type'': ''text/html''}); response.write(data); response.end(); }else{ console.log(err); } }); }else{ console.log(err); } });

El archivo start.html está en el mismo directorio con el archivo que intenta abrirlo y leerlo.

Sin embargo, en la consola obtengo:

{[Error: ENOENT, abre ''./start.html''] errno: 34, código: ''ENOENT'', ruta: ''./start.html''}

¿Algunas ideas?


Con Node 0.12, es posible hacer esto sincrónicamente ahora:

var fs = require(''fs''); var path = require(''path''); // Buffer mydata var BUFFER = bufferFile(''../public/mydata.png''); function bufferFile(relPath) { return fs.readFileSync(path.join(__dirname, relPath)); // zzzz.... }

fs es el sistema de archivos. readFileSync() devuelve un Buffer, o una cadena si lo pides.

fs asume correctamente que las rutas relativas son un problema de seguridad. path es una solución temporal.

Para cargar como una cadena, especifique la codificación:

return fs.readFileSync(path,{ encoding: ''utf8'' });


Ejecute este código, obtendrá datos del archivo y los mostrará en la consola

function fileread(filename){ var contents= fs.readFileSync(filename); return contents; } var fs =require("fs"); // file system var data= fileread("abc.txt"); //module.exports.say =say; //data.say(); console.log(data.toString());


Use path.join(__dirname, ''/start.html'') ;

var fs = require(''fs''), path = require(''path''), filePath = path.join(__dirname, ''start.html''); fs.readFile(filePath, {encoding: ''utf-8''}, function(err,data){ if (!err) { console.log(''received data: '' + data); response.writeHead(200, {''Content-Type'': ''text/html''}); response.write(data); response.end(); } else { console.log(err); } });

Gracias a dc5.


var fs = require(''fs''); var path = require(''path''); exports.testDir = path.dirname(__filename); exports.fixturesDir = path.join(exports.testDir, ''fixtures''); exports.libDir = path.join(exports.testDir, ''../lib''); exports.tmpDir = path.join(exports.testDir, ''tmp''); exports.PORT = +process.env.NODE_COMMON_PORT || 12346; // Read File fs.readFile(exports.tmpDir+''/start.html'', ''utf-8'', function(err, content) { if (err) { got_error = true; } else { console.log(''cat returned some content: '' + content); console.log(''this shouldn/'t happen as the file doesn/'t exist...''); //assert.equal(true, false); } });