Node连接mysql数据库方法
作者:网络转载 发布时间:[ 2016/12/30 11:22:24 ] 推荐标签:数据库 Node
4. 示例1
使用基本的连接方式来连接数据库,分别定义数据连接以及关闭的 function ,如下示例:
// connect.js 数据库连接与关闭
var mysql = require('mysql');
var config = require('./config.json'); // 将数据库连接参数写入mysql对象,即config.mysql
var connCount = 0; // 统计目前未关闭的连接
exports.getConn = function(){
connCount ++;
console.log('............................OPEN a connection, has '+ connCount + ' connection.');
return mysql.createConnection(config.mysql);
};
exports.endConn = function(conn){
conn.end(function(err){
if(!err){
connCount --;
console.log('.........................CLOSE a connection, has '+ connCount + ' connection.');
}
});
};
然后给个使用数据库的示例,
// 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() 的方法来连接,官方并没有介绍其优劣,我简单做了个测试,貌似这两种方式并没有多大的区别,也没再研究,有知道的烦请告知,谢了~
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南