Llamada a módulos en orden específico en nodo

He usado el siguiente código para llamar a dos módulos, pero la acción de invocación se llama antes del archivo de validación (vi en depuración). Lo que debo hacer para verificar quevalidateFile se llama antesappHandler.invokeAction? ¿Debo usar una promesa?

var validator = require('../uti/valid').validateFile();
var appHandler = require('../contr/Handler');
appHandler.invokeAction(req, res);

Actualizar

este es el código del archivo de validación

var called = false;
var glob = require('glob'),
    fs = require('fs');
module.exports = {

    validateFile: function () {

        glob("myfolder/*.json", function (err, files) {
            var stack = [];
            files.forEach(function (file) {
                fs.readFile(file, 'utf8', function (err, data) { // Read each file
                    if (err) {
                        console.log("cannot read the file", err);
                    }
                    var obj = JSON.parse(data);
                    obj.action.forEach(function (crud) {
                        for (var k in crud) {
                            if (_inArray(crud[k].path, stack)) {

                                console.log("duplicate founded!" + crud[k].path);

                                break;
                            }
                            stack.push(crud[k].path);
                        }
                    })
                });
            });
        });
    }
};

Respuestas a la pregunta(2)

Su respuesta a la pregunta