在nodejs中的if语句中读取txt文件

时间:2016-06-23 10:28:31

标签: node.js fs

我将某个变量保存为txt文件中的对象数组,问题是如何读取它们并将其与for循环中的另一个变量进行比较。

谢谢。

我在txt文件中保存的格式:

[{"sekke":"445,675","halfsekke":"145,600"}]  

我想读的代码是:
NodeJs:

var array = fs.readFileSync('data.txt').toString().split("\n");
            console.log(array[0]['sekke'])
            for (var key in array[0]['sekke']) {
                console.log("key " + key + " has value " + array);
            }  

这是错的,我怎么能读到像这样的东西?

if (array['sekke] == 100){
console.log("is ok");
}

2 个答案:

答案 0 :(得分:2)

尝试使用以下代码:

fs.readFile('data.txt', 'utf8', function read(err, data) {
       if (err) {
         throw err;
       }
       data = JSON.parse(data);
       var dataObject = data[0];
       for (i=0;i<Object.keys(dataObject).length;i++) {
           var ss = dataObject[i];
           var key = Object.keys(ss);
          for(varj=0;j<ss[key];j++){
             //your if condition logic
          }
       }  
    });

答案 1 :(得分:2)

如果要将字符串像对象一样使用,则需要将字符串解析回JSON。 如果你的文件是数组的集合(每行1个数组),那么就像你一样将它拆分,然后用JSON.parse解析它。你需要分别在每一行上运行它,所以使用map或loop。 如果您的文件是一个大的对象数组,那么只需读入它然后用JSON.parse解析整个事物。

另外,考虑使用readFile的异步版本,因为使用readFileSync会在读取时阻塞整个node.js应用程序(随着文件变大会出现问题)