我是节点JS的新手,我遇到了解决从多个文件读取的练习的问题。当我执行代码时,它返回Alexa中的数据,当我尝试转换数据时,我没有收到期望的结果
如果有人可以告诉我我的代码有什么问题,那将会有所帮助。
var fs = require('fs');
var tabfichier = ['test.txt','test2.txt'];
var result;
var donne;
var call =function(result,donne){
console.log('result : ');
console.log(result);
console.log('donne : ');
//my function to convert
function hex_to_string(donne)
{
var hex = result.toString();
var str = '';
for (var n = 0; n < hex.length; n += 2) {
str += String.fromCharCode(parseInt(hex.substr(n, 2), 16));
}
return str;
}
console.log(hex_to_string(donne));//i call her
var array = [];
return array [null,result] ;
}
readFiles(tabfichier, call);
function readFiles(files, callback)
{
console.log(files);
console.log(callback);
var filesLeft = files.length;
var contents = {};
var error = null;
var filePath = ('./');
var x=0;
var processContent = function(filePath)
{
return function(err, data){
if (error !== null)
{
return;
}
if (err)
{
error = err;
return callback(err);
}
contents[x] = data;
x++;
if (!--filesLeft)
{
return callback('null', contents);
}
};
};
files.forEach(function(filePath){
fs.readFile(filePath, processContent(filePath));
});
}
答案 0 :(得分:0)
你必须指定编码,因此fs.readFile(filename, encoding, callback)
大多数comomon编码都是urf8
和ascii
。
您还可以使用此功能filedata = readFileSync(filename, encoding)