Get all json files from node folder and find specific attr inside

Ok, here is the code. If you don't understand something let me know and I will glad to help you!

var glob = require("glob");
var fs = require("fs");

var _inArray = function(needle, haystack) {
  for(var k in haystack) {
    if(haystack[k] === needle) {
      return true;
    }
  }
  return false;
}

glob("json/*.json", function(err, files) { // read the folder or folders if you want: example json/**/*.json
  if(err) {
    console.log("cannot read the folder, something goes wrong with glob", err);
  }
  var matters = [];
  files.forEach(function(file) {
    fs.readFile(file, 'utf8', function (err, data) { // Read each file
      if(err) {
        console.log("cannot read the file, something goes wrong with the file", err);
      }
      var obj = JSON.parse(data);
      obj.action.forEach(function(crud) {
        for(var k in crud) {
          if(_inArray(crud[k].providedAction, matters)) {
            // do your magic HERE
            console.log("duplicate founded!");
            // you want to return here and cut the flow, there is no point in keep reading files.
            break;
          }
          matters.push(crud[k].providedAction);
        }
      })
    });
  });
});

JSON 1:

{"action": [
  {
    "delete": {
      "path": "deleteFile",
      "providedAction": "Del"
    }
  },
  {
    "update": {
      "path": "updateFile",
      "providedAction": "UPD"
    }
  }
]
}

JSON 2:

{
  "action": [
    {
      "add": {
        "path": "addFile",
        "providedAction": "Add"
      }
    }
  ]
}

JSON 3:

{
  "action": [
    {
      "update": {
        "path": "updateFile",
        "providedAction": "UPD"
      }
    }
  ]
}

Not the prettiest code I've written, but here it is:

// Require the nodejs file system library
var fs = require('fs');
var path = '/usr/local/var/jsons';
var delCounter = 0;

// Readdir reads a path and gives an array of filenames
// to the callback handleFiles.
fs.readdir(path, handleFiles);

function handleFiles (err, files) {
    if (err) throw err;
    var i;
    var jsonFilePattern=/\.[json]+$/i;
    var fileName;
    var filePath;
    // Tells fs to read an utf-8 file.
    var fileReadOptions = {
        'encoding':'utf-8'
    };

    for (i = 0; i < files.length; ++i) {
        fileName = files[i];
        // Check if the file has a .json extension
        if (fileName.match(jsonFilePattern)) {
            filePath = path + '/' + fileName;
            // Open the file as utf-8 and call handleJsonFile back
            // when done reading.
            fs.readFile(filePath, fileReadOptions, handleJsonFile);
        }
    }
}

function handleJsonFile (err, data) {
    if (err) throw err;
    var dataObject = JSON.parse(data);
    var i;
    var action;
    // Loop through all possible action.
    for (i = 0; i < dataObject.action.length; ++i) {
        action = dataObject.action[i];
        if (action.delete &&
            action.delete.providedAction && 
            action.delete.providedAction === 'Del')
        {
            // If there is a 'Del', add it to the counter.
            ++delCounter;
        }
    }
    if (delCounter > 1) {
        throw new Exception('Jsons  not valid.');
    }
}