Я пишу приложение в NodeJS, используя скрипт кофе, и мне нужно сохранить результаты SQL-запроса, сделанного классом, в переменную, которую может вернуть этот класс.Как вернуть результаты .query в класс
У меня есть что-то вроде
class dataBase
mySQL = require('mysql');
connection = null;
queryResults = null;
constructor:(host,user,password,database)->
connection = mySQL.createConnection({
host : "#{host}",
user : "#{user}",
password : "#{password}",
database : "#{database}",
});
connection.connect;
потом в классе у меня есть функция называется запрос, который запрашивает базу данных и возвращает результат.
query:(input) ->
connection.query("#{input}",(err,result)->
queryResults = result;
);
return queryResults;
Проблема в том, что функция connection.query всегда работает асинхронно, поэтому return queryResults всегда возвращает null.
Есть в любом случае я могу исправить это так, что запрос() возвращает значение результата, если я что-то за пределами класса, как:
myDatabase = new dataBase("fee","fi","foo","fum");
users = myDatabase.query("SELECT * FROM users");