// db.js 查询用户信息 var connect = require('./connect.js'); // 引入数据连接方法 exports.getUser = function(username, callback){ var connection = connect.getConn(); var sql = 'select * from user where username = "' + username + '"'; connection.query(sql,function(err,rows,fields){ callback(err,rows,fields); }); connect.endConn(connection); }
5. 示例2
使用数据库连接池,同样先创建数据库连接池的方法,如下两种方式:
// connect.js 直接使用 var mysql = require('mysql'); var config = require('./config.json'); var pool = mysql.createPool(config.mysql); exports.querySQL = function(sql,callback){ pool.query(sql, function(err,rows,fields){ callback(err,rows,fields); }); }
// connect.js 使用getConnection方法 var mysql = require('mysql'); var config = require('./config.json'); var pool = mysql.createPool(config.mysql); exports.querySQL = function(sql, callback){ pool.getConnection(function(err,conn){ conn.query(sql,function(err,rows,fields){ callback(err,rows,fields); conn.release(); // 不要忘了释放 }); }); }
使用的时候,直接使用querySQL方法即可,如下:
// db.js 查询用户信息 var connect = require('./connect.js'); exports.getUser = function(username,callback){ var sql = 'select * from user where username = "' + username + '"'; connect.querySQL(sql,function(err,rows,fields){ callback(err,rows,fields); }); };
官方是推荐使用连接池的方式进行连接的,但是,是直接使用pool.query()连接还是pool.getConnection()的方法来连接,官方并没有介绍其优劣,我简单做了个测试,貌似这两种方式并没有多大的区别,也就没再研究,有知道的烦请告知,谢了~