如何读取目录中的所有jsons,存储内容并比较结果

问题描述 投票:0回答:1

我该如何完成它?它需要读取一个目录中的所有json文件,记住内容,然后将它与nodejs中的变量进行比较。

例如有三个json文件,存储和检查内容以查看是否有任何内容等于“hi”。如果是这样,执行某些操作,否则执行其他操作。

我花了几个小时试图谷歌这样的东西无济于事。

json node.js bots discord
1个回答
1
投票

执行以下操作的示例代码:

  • 列出目录
  • 读取目录的每个文件并存储内容
  • 过滤与指定目标内容匹配的文件
  • 对每个匹配项应用操作 var fs = require("fs"); var async = require("async"); var folder = __dirname+"/yolo" var target = "hi"; var myAction = function(file, content) { console.log("My action"); console.log(file); console.log(content); }; fs.readdir(folder, function(err, item){ if(err) { // do stg console.log("error readdir"); console.log(err); process.exit(0); } else { var content = []; async.eachOf(item, function(e, i, ecb){ fs.readFile(folder+"/"+e, "utf8", function(err, data){ if(err || !data) { console.log("error readFile"); console.log(err); return ecb(err || true); } else { content.push({ file:e, text: data.toString() }); return ecb(null); } }) }, function(err){ if(err) { // do stg console.log("error eachOf"); console.log(err); process.exit(0); } else { // get only item matching the string var filters = content.filter(function(e){return e.text == target}); // call actions on each matching item filters.forEach(function(e){ myAction(e.file, e.text); }); process.exit(1); } }); } });
© www.soinside.com 2019 - 2024. All rights reserved.