Node.js使用MySQL的连接池

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

使用Nodejs+MySQL肯定比PHP和MySQL的组合更适合做服务器端的开发。

使用Nodejs你会从他的异步行为中获益良多。比如,提升性能,你无须在从已有的MySQL数据库迁移到其他的NoSQL数据库获得性能的提升。

 

Nodejs如何使用MySQL

Nodejs要连接MySQL,可以使用Nodejs的MysQL驱动来实现。比如,我们这里使用“node-mysql”连接数据库。我们使用下面的方式来连接数据库:

首先,我们需要使用nodejs的包管理工具(npm)安装mysql的驱动。命令行如下:

 

npm install musql


现在,要在js文件中使用mysql,添加下面的代码到你的文件中:

 

 

var mysql =  require('mysql');


接下来,我们就可以使用这个模块来连接MySQL数据库。当然要连接数据库需要指定MySQL Server的host name,用户名和密码等。还有其他的很多选项可以设置,比如数据库的时区、socketPath、和本地地址等。

 

 

   var connection =  mysql.createConnection({
  	host : “hostName”,
  	user : “username”,
  	password: “password”
   });


那么,下面的代码会为你建立一个新的连接。

 

 

connection.connect();


使用这个连接对象,我们可以像下面一样查询数据库。我们可以使用connection.escape()方法防止sql注入。

 

 

connection.query(“use database1”);
  var strQuery = “select * from table1”;	
  
  connection.query( strQuery, function(err, rows){
  	if(err)	{
  		throw err;
  	}else{
  		console.log( rows );
  	}
  });

 

最后,我们可以用两种方法关闭连接。用connection.end或者connection.destroy。

 

下面的表达式会确保所有队列中的查询在数据库连接关闭前都会被执行。请注意,这里有一个回调函数。

 

connection.end(function(err){
// Do something after the connection is gracefully terminated.

});

 

下面的表达式会立即关闭数据库连接。并且没有回调函数或者触发任何事件。

 

 

connection.destroy( );



Nodejs使用MysQL的连接池

 

使用连接池可以帮助我们更好的管理数据库连接。数据库连接池可以限制连接的最大数量,复用已有的连接等。

首先,我们需要创建一个连接池:

 

var mysql =  require('mysql');                  
  var pool =  mysql.createPool({
	host : “hostName”,
	user : “username”,
	password: “password”
  });


其次,我们可以从创建的连接池中获取到一个我们需要的连接:

 

 

pool.getConnection(function(err, connection){
  
});


使用回调函数的参数connection来查询数据库。最后使用connection.realease()方法释放数据库连接。

 

 

pool.getConnection(function(err, connection){
  connection.query( “select * from table1”,  function(err, rows){
  	if(err)	{
  		throw err;
  	}else{
  		console.log( rows );
  	}
  });
  
  connection.release();
});



 

执行多条查询语句

为了安全起见,默认情况下是不允许执行多条查询语句的。要使用多条查询语句的功能,就需要在创建数据库连接的时候打开这一功能:

 

var connection =  mysql.createConnection( { multipleStatements: true } );

 

这一功能打开以后,你就可以像下面的例子一样同时使用多条查询语句:

 

 

connection.query('select column1; select column2; select column3;', function(err, result){
  if(err){
  	throw err;
  }else{
  	console.log(result[0]);       // Column1 as a result
  	console.log(result[1]);       // Column2 as a result
  	console.log(result[2]);       // Column3 as a result
  }
});




 

 

 

 

 

 

 

 

 

 



 

 

 

 



 

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!









本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/p/4655879.html ,如需转载请自行联系原作者


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
数据可视化 关系型数据库 MySQL
PolarDB常见问题之无法创建mysql的连接池如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
2月前
|
资源调度 JavaScript 关系型数据库
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
33 0
|
3月前
|
JavaScript 关系型数据库 MySQL
百度搜索:蓝易云【Node.js写接口连接MySQL数据库教程】
现在,你的Node.js应用已经启动,可以通过访问 `http://localhost:3000/users`来获取所有用户的信息。注意替换上述代码中的数据库连接信息为你自己的实际数据。
50 0
|
3月前
|
资源调度 JavaScript 关系型数据库
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)(下)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
20 0
|
3月前
|
JavaScript 关系型数据库 MySQL
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)(上)
Node.js【文件系统模块、路径模块 、连接 MySQL、nodemon、操作 MySQL】(三)-全面详解(学习总结---从入门到深化)
34 0
|
4月前
|
JavaScript 关系型数据库 MySQL
如何在 Node.js 中连接 MySQL 数据库
如何在 Node.js 中连接 MySQL 数据库
98 0
|
4月前
|
关系型数据库 MySQL 数据库
Node连接MySQL数据库进行基本的增删改查操作(一看就会)(二)
Node连接MySQL数据库进行基本的增删改查操作(一看就会)
|
4月前
|
关系型数据库 MySQL 数据库
Node连接MySQL数据库进行基本的增删改查操作(一看就会)(一)
Node连接MySQL数据库进行基本的增删改查操作(一看就会)
|
9月前
|
SQL JavaScript 关系型数据库
nodejs:本地nodejs连接mysql 实现 增、删、改、查
nodejs:本地nodejs连接mysql 实现 增、删、改、查
134 0
|
SQL JavaScript 前端开发
TypeScript(node)连接使用MySQL(JavaScript也一样)
node的mysql包可以帮助我们使用JavaScript来连接mysql。
248 0