简介:这篇文章主要介绍了Node.js使用MySQL连接池的方法,结合具体实例形式分析了nodejs操作mysql连接池的相关模块安装、连接、查询等使用技巧,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。 ...
这篇文章主要介绍了Node.js使用MySQL连接池的方法,结合具体实例形式分析了nodejs操作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"});//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860那么,下面的代码会为你建立一个新的连接。 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 ); }});//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860最后,我们可以用两种方法关闭连接。用connection.end或者connection.destroy。下面的表达式会确保所有队列中的查询在数据库连接关闭前都会被执行。请注意,这里有一个回调函数。 connection.end(function(err){// Do something after the connection is gracefully terminated.});//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860下面的表达式会立即关闭数据库连接。并且没有回调函数或者触发任何事件。 connection.destroy( );Nodejs使用MysQL的连接池使用连接池可以帮助我们更好的管理数据库连接。数据库连接池可以限制连接的最大数量,复用已有的连接等。首先,我们需要创建一个连接池: var mysql = require("mysql");var pool = mysql.createPool({ host : "hostName", user : "username", password: "password"});其次,我们可以从创建的连接池中获取到一个我们需要的连接: pool.getConnection(function(err, connection){});//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860使用回调函数的参数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();});//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860执行多条查询语句为了安全起见,默认情况下是不允许执行多条查询语句的。要使用多条查询语句的功能,就需要在创建数据库连接的时候打开这一功能: 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 }});node.js中mysql连接池的使用如果不想程序在查询数据时卡死或等待过长时间,一般不推荐在node中开启一个连接后全部查询都用这个链接并且不关闭,因为,你试了就知道为什么了Node.js mysql连接池模块
npm -install -g node-mysql
var mysql=require("mysql");var pool = mysql.createPool({ host: "localhost", user: "user", password: "password", database: "database", port: port});//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860var query=function(sql,callback){ pool.getConnection(function(err,conn){ if(err){ callback(err,null,null); }else{ conn.query(sql,function(qerr,vals,fields){ //释放连接 conn.release(); //事件驱动回调 callback(qerr,vals,fields); }); } });};module.exports=query;//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860
var query=require("./lib/mysql.js");query("select 1 from 1",function(err,vals,fields){ //do something});//欢迎加入前端全栈开发交流圈一起吹水聊天学习交流:864305860结语感谢您的观看,如有不足之处,欢迎批评指正。对前端的技术,前端全栈技术感兴趣的同学关注我的头条号,并在后台私信发送关键字:“前端”即可获取免费的前端开发攻城师学习资料知识体系已整理好,欢迎免费领取。还有视频分享可以免费获取。关注我,可以获得没有的经验哦!本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.rzxsoft.cn学习互联网营销技术请到巅云建站www.rzxsoft.cn。 |