returns data with module.exports node js

0

I'm having trouble returning data using module.exports, here's an example of how I'm trying to do

module.exports.menu = (app,req,res)=>{ 
    var fs = require('fs');
    var patch = 'public/menu';
    var conn = app.config.dbSyncSql();


    fs.readdir(patch, (err, files) => {
        /**
         * Aqui executamos uma consulta SQL e verificamos a tabela do login qual e o idioma
         */
        var linhas_login = conn.queueQuery('SELECT * FROM login WHERE id = '1'')();
        var lang = linhas_login[0].lang;

        /**
         * Criamos um loop com os arquivos emcontrados no parametro fs.readdir 
         * abrimos cada arquivo separadamente e colocamos o seu conteudo em um objeto
         */
        function reload() {
            var obj = [];
            files.forEach(file => {

                var results = JSON.parse(fs.readFileSync(patch + '/' + file, 'utf8'));
                // console.log(results.lang);
                // console.log(lang);

                /**
                 * Aqui fazemos a verificação da liguagem e mostramos o menu de acordo com o idioma do cliente
                 */
                if (results.lang == lang) {
                    results.sub = results.menu.menu_sub;
                    obj.push(results);
                }
            });

            retorno(obj)
            //return obj;
        }
        //console.log(reload());
        return reload();

    });

    function retorno(x) {
        return x;
    }

}

But I can not get the data

module.exports = (app)=>{

    app.get('/get_menu', (req, res) => {
        var conn = app.config.dbSyncSql();
        var mem = app.app.controlles.menu.menu(app,req,res);

        res.send(mem)

        //res.render('index', { menu: mem });

    });

}

The entire project is at this link link

You can take a look at my folder structure link in this link so when I change this part of the code

function retorno(x) {
  st =  x;
}
return st;

it even works every time it is the first time it accesses the error

    
asked by anonymous 31.07.2018 / 14:04

1 answer

0

I was able to solve with the help of a friend and the code is that way

/**
 * Autor: Guilherme Kaercher
 * @param {*} app 
 * @param {*} req 
 * @param {*} res 
 */

module.exports.menu = (app, req, res) => {
    var fs = require('fs');
    var path = 'public/menu/';
    var conn = app.config.dbSyncSql();

    // Aqui executamos uma consulta SQL e verificamos a tabela do login qual e o idioma

    var linhas_login = conn.queueQuery('SELECT * FROM login WHERE id = '${req.session.login}'')();
    var lang = linhas_login[0].lang;
    //const lang = 'pt-br';

    console.log('lang : ' + lang);

    var files = fs.readdirSync(path);
    console.log('files: ' + files);

    const obj = [];
    files.forEach(file => {

        console.log('obj: ' + obj);
        var results = JSON.parse(fs.readFileSync(path + file, 'utf8'));
        console.log(results);

        //Aqui fazemos a verificação da liguagem e mostramos o menu de acordo com o idioma do cliente
        if (results.lang == lang) {
            results.sub = results.menu.menu_sub;
            obj.push(results);
        }
    });
    return obj;
}
    
01.08.2018 / 14:57