我正在尝试"翻译"我用Ruby完成的旧脚本到node.js.其中一个是关于CSV解析,我陷入第一步 - 将文件加载到字符串中。
这会将我的文件内容打印到控制台:
fs = require('fs');
fs.readFile("2015 - Best of.csv", 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
console.log(data);
});
但出于某种原因,我无法将数据捕获到变量中:
fs = require('fs');
var x = "";
fs.readFile("2015 - Best of.csv", 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
x = x + data;
});
console.log(x);
如何存储(功能' s)数据'变量为(全局)' x'变量?
答案 0 :(得分:3)
它正在发挥作用。
问题是你在填充之前记录了x。由于调用是异步的,因此x变量将只包含函数内部字符串的内容。
您还可以看到:fs.readFileSync函数。
但是,我建议您使用节点的异步功能更加舒适。
试试这个:
fs = require('fs');
var x = "";
fs.readFile("2015 - Best of.csv", 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
x = x + data;
console.log(x);
});