Как я могу заставить эту функцию node.js возвращать объект - PullRequest
0 голосов
/ 07 июня 2018

Я написал функцию как часть модуля:

exec: function(pool, query, result) {

    pool.getConnection(function(error,connection) {

        if (error) {
            result({"code" : 100, "status" : "Error in connection database"});
            return;
        }  

        connection.query(query, function (error, results, fields) {
            if(error){
                result({"status": 500, "error": error, "response": null}); 
            } else {
                result({"status": 200, "error": null, "response": results});
            }
            connection.release();
            return;
        });

        connection.on('error', function(error) {
            result({"code" : 100, "status" : "Error in connection database"});
            return;
        });
    });
},

Я вызываю функцию следующим образом:

sql.exec(pool, query, function(result) {
    console.log('result');
    console.log(result);
    res.render('index', { title: 'Express', results: result.response });
});

И я могу получить нужные мне результаты врезультат.

Однако я бы хотел, чтобы функция просто возвращала объект напрямую.Например.Что-то вроде:

var result = sql.exec(pool, query);

Я пробовал разные вещи, но я либо получаю функцию, которая возвращает неопределенное значение, либо мне приходится использовать обратный вызов для получения данных, что является грязным, особенно если яхотите вызвать функцию несколько раз.

Кто-нибудь знает, как я могу переписать свою функцию, чтобы просто вернуть объект результата?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...