Я написал функцию как часть модуля:
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);
Я пробовал разные вещи, но я либо получаю функцию, которая возвращает неопределенное значение, либо мне приходится использовать обратный вызов для получения данных, что является грязным, особенно если яхотите вызвать функцию несколько раз.
Кто-нибудь знает, как я могу переписать свою функцию, чтобы просто вернуть объект результата?