我在用node查询数据库中使用如下代码:
var _password =mysql.query(table," where name = " + "'" + name + "'","password");
其中mysql.query为
query(table,others,column){
var connection = this.connection;
var sql;
if(column) sql = "select " + column + " from " + table;
else{sql = "select * from " + table;}
if(others) sql += " " + others;
console.log(sql);
var result;
connection.query(sql,function(err,rows,fields){
if(err){
throw err;
}
if(rows.length > 1){
rows.forEach(function(row){
console.log(row);
});
}
else if(rows.length == 1){
console.log(rows[0]);
rows = rows[0];
}
else{
console.log("没有数据");
}
return rows;
});
console.log('result:');
console.log(result);
return result;
}
最终的结果是:
很显然query之后的语句先执行了,此处无法使用yield,请大神指教
這裡面的循環是異步的,所以出問題了,你要控制住異步。
給你一個例子,我剛學著寫,應該寫的不咋地,但是可以給你示範如何控制非同步。