node+mysql解决mysql.query的异步调用问题

问题原因:由于mysql.query的方法是异步调用的原因,在外部想要获取query内部的值是不可能的,如下:

		var results=''
		var sql=select user_Name from users_personal where user_Name=?`; 
   		 mysqlConnection.query(sql,user_Name,function(err,result){
            if(err){
    			console.log('[错误] --- ',err.message);
    			return;
    		} 
           results=result
           }
           console.log(results)

这里的结果显然是空的,但我想要results的值是我刚才查找到的值该怎么做呢

解决方案

应用技术:node,mysql,模块化,异步(回调函数,callback)

1.文件1:mysqlConnection.js
var mysql   = require('mysql');
var exports=module.exports;
var mysqlConnection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '*********',
  database : 'navol'
});

mysqlConnection.connect(function(){console.log('mysql链接成功!')});

    exports.selectUserName=function(user_Name, callback){
	var sql=`select user_Name from users_personal where user_Name=?`; 
	mysqlConnection.query(sql,user_Name,function(err,result){
        if(err){
			console.log('[错误] --- ',err.message);
			return;
		} 
        console.log(result)
        
        callback(result)    //此处callback就是将值取出来
        
    	}); 
    };
 2.文件2:select.js
var mysqlConnection=require('./mysqlConnection')   
mysqlConnection.selectUserName(user_Name, results=>{
     console.log(results)
});

   // 可以看到这里的results就是查找到的值

你可能感兴趣的:(mysql,node,个人学习,node,模块化,异步,mysql)