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);
}
});