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

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

name:test 1 test2 test 3 user: foo bar 

当我在文本文件中find名称的 “key”时,我需要读取文件以获取test1 test2 test3“string” 。 我怎样才能做到这一点 ?

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

当你的值包含':'时,另一个答案会有问题。 例如,当你的名字是'name:bla:bli:blub'时,你只会得到'bla'的结果。

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

你可以把这个片段放到你的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'] 

编辑1:现在做了一点更通用。 keyVals现在是一个包含文件的key和val对象的数组

 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); }) 

我希望这有帮助