2015-10-21 63 views
0

我想将在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); 

如何存放(功能的)“数据'变成(全局)'x'变量?

回答

0

它正在工作。

问题是你在记录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); 
}); 
+0

哇,所以我怎么完成我的剧本,地方,功能单一里面整个代码?这很奇怪。 – OldBoy

相关问题