如何使node.js函数返回一个对象

如何使node.js函数返回一个对象,node.js,express,Node.js,Express,我已经编写了一个函数作为模块的一部分: exec: function(pool, query, result) { pool.getConnection(function(error,connection) { if (error) { result({"code" : 100, "status" : "Error in connection database"}); return; }

我已经编写了一个函数作为模块的一部分:

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);
我尝试过各种方法,但我要么最终得到一个返回未定义的函数,要么我必须使用回调来获取数据,这很混乱,特别是如果我想多次调用该函数


有人知道我如何重写函数来返回结果对象吗?

一般来说,你不能,你需要使用
回调
承诺
。这也是更好的方法…可能的重复可能的重复