Node连接mysql数据库方法
作者:网络转载 发布时间:[ 2016/12/30 11:22:24 ] 推荐标签:数据库 Node
使用Node做Web开发,基本上都是使用 NoSQL 数据库,频繁的是使用 MongoDB 了,自己做了一些简单的Web开发,为了降低学习门槛,一直使用 MySQL 来做数据库。这里简单介绍一下连接 MySQL 数据库的方式,希望能帮助到其他人。
npm install --save mysql
使用上述命令安装完 MySQL 的模块后,可以直接使用了,官网的DOCS里一个简单的例子如下可以入门了。
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'me',
password : 'secret',
database : 'my_db'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields){
if (err) throw err;
console.log('The solution is: ', rows[0].solution);
});
connection.end();
很简单的一个例子,从上面的例子可以得出:使用 createConnection(option) 方法创建一个连接对象,然后连接对象的 connect() 方法创建连接,后使用 query() 方法执行SQL语句,返回结果作为回调函数的参数 rows 返回, rows 为数组类型。
1. 连接
创建连接对象,需要传入连接数据库的一些连接参数,也是 createConnection(option) 里的 option , option 是一个对象,以键值对的形式传入 createConnection() 方法里。上例列举出了基本的参数:
host 主机名
user 连接数据库的用户
password 密码
database 数据库名称
还有其他的参数,可以查询下官方DOCS,这里不一一列举了,初期学习上面这些参数足以。
2. 关闭
关闭一个连接使用 end() 方法, end() 方法提供一个回调函数,如下:
connect.end(function(err){
console.log('End a connection');
});
这是建议使用的方法, end() 方法会等待连接回调完成后才关闭连接。官方还提供了另外一种方法 destroy() 方法,这个方法直接关闭连接,不会等待回调完成。
举个简单的例子:
var mysql = require('mysql');
var option = require('./connect.js').option;
var conn = mysql.createConnection(option);
conn.query('select * from message',function(err,rows,fields){
if(!err){
console.log(rows);
}
});
conn.end(function(err){
console.log('end a connection');
});
终结果会是:先打印完 SELECT 数据表结果后,再打印 end a connection 。而如果你将关闭方法换成 conn.destroy(); ,那么你别想返回任何结果了,因为还没等回调结束已经终止连接了。
3. 连接池
连接池的原理是一开始给你创建多个连接对象放在一个“池子”里,用的时候取一个,用完了放回“池子”里,在一定程度上是有利于节省系统开销的,因为连接对象是在开始的时候创建好了,使用的时候不再需要系统开销去创建数据库连接对象。官方DOCS介绍了连接方法:
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit : 10,
host : 'example.org',
user : 'bob',
password : 'secret',
database : 'my_db'
});
pool.query('SELECT 1 + 1 AS solution', function(err, rows, fields){
if (err) throw err;
console.log('The solution is: ', rows[0].solution);
});
创建连接池的方法是 createPool(option) , option 里多了一个参数 connectionLimit 指的是一次性在连接池里创建多少个连接对象,默认10个。如果你想共享一个连接对象,可以使用下面方法进行连接;
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'example.org',
user : 'bob',
password : 'secret',
database : 'my_db'
});
pool.getConnection(function(err, connection){
// Use the connection
connection.query( 'SELECT something FROM sometable', function(err, rows){
// And done with the connection.
connection.release();
// Don't use the connection here, it has been returned to the pool.
});
// Use the connection
connection.query( 'SELECT something2 FROM sometable2', function(err, rows){
// And done with the connection.
connection.release();
// Don't use the connection here, it has been returned to the pool.
});
});
使用一个连接对象执行两次 query() 函数。
相关推荐
更新发布
功能测试和接口测试的区别
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