关于node利用node mysql模块调取本地数据库数据,然后返回的数据为啥为空,但是回调里面有值?
发布于 2 个月前 作者 artisan 179 次浏览 来自 问答
var mysql = require('mysql');
function getData(params,table){
	var connection = mysql.createConnection({
	  host     : 'localhost',
	  user     : 'root',
	  password : '',
	  database : 'app'
	});
	console.log(1);
	connection.connect();
	console.log(2);
	connection.query('select '+params+' from '+table, function(err, rows, fields) {
	  if (err) throw err;
	  console.log(3);
	  console.log(rows); //这个有值
	  return rows; //这个返回undefined
	});
	console.log(4);
	connection.end();
	console.log(5);
}
getData('admin_user_name','admin_user');
//console.log(getData('admin_user_name','admin_user'))

也试过使用全局变量保存rows但是依旧undefiend,并且调试的时候打印的顺序是是

1
2
4
5
3

这是怎么回事?该如何解决

2 回复

因为是异步的,需要使用 callback,或者 Promise

表示先把代码格式化一下,要不根本看不懂的样子😂

来自炫酷的 CNodeMD 越来越喜欢material design😁

回到顶部