我正在使用咖啡脚本在 NodeJS 中编写一个应用程序,我需要将一个类进行的 sql 查询的结果存储到该类可以返回的变量中。
我有类似的东西
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 的函数,它查询数据库并返回结果。
query:(input) ->
connection.query("#{input}",(err,result)->
queryResults = result;
);
return queryResults;
问题是因为 connection.query 中的函数总是异步运行,所以 return queryResults 总是返回 null。
无论如何我可以解决这个问题,如果我在类之外执行一些操作,query() 将返回结果的值,例如:
myDatabase = new dataBase("fee","fi","foo","fum");
users = myDatabase.query("SELECT * FROM users");