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: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!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
相关文章
|
SQL 缓存 JavaScript
NodeJS 后端开发 07 MySQL数据库连接池开发生产应用
前篇 【NodeJS 后端开发 06 连接MySQL 】简单尝试了mysql js库来连接数据库。
256 0
NodeJS 后端开发 07 MySQL数据库连接池开发生产应用
|
JavaScript 关系型数据库 数据库
|
JavaScript 关系型数据库 MySQL
NodeJs——(13)用连接池来控制mysql(入门版)
(34)用连接池来控制mysql(入门版) ①第一步,创建一个连接池:(和之前普通创建mysql的连接对象很像) var mysql = require("mysql"); var pool = mysql.createPool({ host: '127.0.0.1', user: 'root', password: '', port: '3306',
2633 0
|
2月前
|
Web App开发 缓存 JavaScript
【安装指南】nodejs下载、安装与配置详细教程
这篇博文详细介绍了 Node.js 的下载、安装与配置过程,为初学者提供了清晰的指南。读者通过该教程可以轻松完成 Node.js 的安装,了解相关配置和基本操作。文章首先介绍了 Node.js 的背景和应用场景,随后详细说明了下载安装包、安装步骤以及配置环境变量的方法。作者用简洁明了的语言,配以步骤图示,使得读者能够轻松跟随教程完成操作。总的来说,这篇文章为初学者提供了一个友好的入门指南,使他们能够顺利开始使用 Node.js 进行开发。
183 1
【安装指南】nodejs下载、安装与配置详细教程
|
2月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
76 0
|
3月前
|
JavaScript 前端开发 API
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
35 0
|
3月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(上)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
42 0
|
17天前
|
JavaScript Windows
NodeJS 安装及环境配置
NodeJS 安装及环境配置
|
26天前
|
Linux 开发工具 git
node使用nrm 管理托管node的安装源
node使用nrm 管理托管node的安装源
41 1
|
1月前
|
Web App开发 JavaScript 前端开发
Windows 10上安装Node.js的初学者指南
Node.js是是一个强大的JavaScript运行时环境,建立在Chrome的V8 JavaScript引擎上,让你能够在服务器端运行JavaScript。 通过本教程,你将学会如何设置Node.js和npm(节点包管理器等现代Web开发的必备工具。无论你是希望构建Web应用程序、创建服务器端脚本,还是涉足全栈开发,安装Node.js都是你的第一步。那么,让我们开始吧!