节点中怎么连接mysql数据库,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
npm install ,,节省mysql
使用上述命令安装完mysql的模块后,就可以直接使用了,官网的文档里一个简单的例子如下就可以入门了。
var mysql =,要求(& # 39;mysql # 39;); var connection =, mysql.createConnection ({ 主持人:大敌;& # 39;localhost # 39; ,用户:& # 39;我# 39; ,password : & # 39;秘密# 39; ,database : & # 39; my_db& # 39; }); connection.connect (); connection.query (& # 39; SELECT 1, +, 1, AS 解决方案# 39;,,函数(呃,,行,,字段),{ ,if (错),throw 犯错; ,console.log(& # 39;从而solution 是:,& # 39;,,行[0].solution); }); connection.end ();
很简单的一个例子,从上面的例子可以得出:使用createConnection(选项)方法创建一个连接对象,然后连接对象的connect()方法创建连接,最后使用查询()方法执行SQL语句,返回结果作为回调函数的参数行返回,为行数组类型。
<强> 1。连接强>
创建连接对象,需要传入连接数据库的一些连接参数,也就是createConnection(选项)里的选项,选项是一个对象,以键值对的形式传入createConnection()方法里。上例列举出了最基本的参数:
- <李>
主机主机名
李> <李>用户连接数据库的用户
李> <李>密码密码
李> <李>数据库数据库名称
李>还有其他的参数,可以查询下官方文档,这里不一一列举了,初期学习上面这些参数就足以。
<强> 2。关闭强>
关闭一个连接使用结束()方法,结束()方法提供一个回调函数,如下:
connect.end(函数(err) { console.log才能(& # 39;最终获得a 连接# 39;); });
这是建议使用的方法,结束()方法会等待连接回调完成后才关闭连接。官方还提供了另外一种方法破坏()方法,这个方法直接关闭连接,不会等待回调完成。
举个简单的例子:
var mysql =,要求(& # 39;mysql # 39;); var option =,要求(& # 39;。/connect.js& # 39;) .option; var conn =, mysql.createConnection(选项); conn.query (& # 39; select *,得到消息# 39;,函数(犯错、行字段){ ,如果(!犯错){ console.log才能(行); ,} }); conn.end(函数(err) { ,console.log(& # 39;最终获得a 连接# 39;); });
最终结果会是:先打印完选择数据表结果后,再打印结束连接。而如果你将关闭方法换成conn.destroy();,那么你就别想返回任何结果了,因为还没等回调结束就已经终止连接了。
<强> 3。连接池强>
连接池的原理是一开始就给你创建多个连接对象放在一个“池”子里,用的时候取一个,用完了放回“池子”里,在一定程度上是有利于节省系统开销的,因为连接对象是在最开始的时候就创建好了,使用的时候不再需要系统开销去创建数据库连接对象。官方医生介绍了连接方法:
var mysql =,要求(& # 39;mysql # 39;); var pool =, mysql.createPool ({ ,connectionLimit : 10 ,host ,,,,,, & # 39; example.org& # 39; ,user ,,,,,, & # 39;鲍勃# 39; ,password ,,:, & # 39;秘密# 39; ,database ,,:, & # 39; my_db& # 39; }); pool.query (& # 39; SELECT 1, +, 1, AS 解决方案# 39;,,函数(呃,,行,,字段),{ ,if (错),throw 犯错; ,console.log(& # 39;从而solution 是:,& # 39;,,行[0].solution); });
创建连接池的方法是createPool(选项),选项里多了一个参数connectionLimit指的是一次性在连接池里创建多少个连接对象,默认10个。如果你想共享一个连接对象,可以使用下面方法进行连接;
var mysql =,要求(& # 39;mysql # 39;); var pool =, mysql.createPool ({ ,host ,:, & # 39; example.org& # 39; ,user ,:, & # 39;鲍勃# 39; ,password : & # 39;秘密# 39; ,database : & # 39; my_db& # 39; }); pool.getConnection(函数(呃,,连接),{ ,//Use ,从而连接 ,connection.query (& # 39; SELECT something 得到sometable& # 39;,,函数(呃,,行),{//才能,以及done with ,从而连接。 connection.release才能();//才能,不要# 39;t use 从而connection 在这里,,it has been returned 用,池。 ,});//Use ,从而连接 ,connection.query (& # 39; SELECT something2 得到sometable2& # 39;,,函数(呃,,行),{//才能,以及done with ,从而连接。 connection.release才能();//才能,不要# 39;t use 从而connection 在这里,,it has been returned 用,池。 ,}); });节点中怎么连接mysql数据库