通过节点js获取特定的文件内容

时间:2015-07-29 13:10:14

标签: javascript node.js

我使用以下代码获取位于我的c文件夹中的特定文件, 我的问题是如何获取此文件中的特定内容,例如 我是文本文件,内容是

name:test 1 test2 test 3
user: foo bar 

我需要在读取文件时将test1 test2 test3作为"字符串" 当我找到" key"文本文件中的名称。 我怎么能这样做?

fs = require('fs')
fs.readFile('c//myfile.txt', 'utf8', function (err,data) {
    if (err) {
        return console.log(err);
    }

});

2 个答案:

答案 0 :(得分:0)

EDIT1: 现在做得更通用了。 keyVals现在是一个包含文件的键和对的对象数组

fs = require('fs')
var keyVals = [];
fs.readFile('c//myfile.txt', 'utf8', function (err,data) {
    if (err) {
        return console.log(err);
    }
    var lines = data.split('\n');

    lines.forEach(function(line){
      var pair = line.split(':');
      keyVals.push({key:pair[0],val:pair[1]});
    });
});

像这样访问它:

keyVals.forEach(function(element){
  console.log(element.key, element.value);
})

我希望这会有所帮助

答案 1 :(得分:0)

当您的值包含':'时,其他答案会出现问题。 例如,当你的行是'name:bla:bli:blub'时,你只会得到'bla'。

所以这是我的建议,不会有这个问题:

您可以将此代码段放入readFile方法中:

var keyValueObject = {};
data.split("\n").forEach(function(element) {
    var keyValueSeperatorPosition = element.indexOf(':');
    var key = element.substr(0, keyValueSeperatorPosition);
    var value = element.substring(keyValueSeperatorPosition + 1);
    keyValueObject[key] = value;
});

然后,您可以使用以下方式访问您的值:

keyValueObject['name']