nodejs 优雅的连接 mysql

1.mysql 及 promise-mysql

nodejs 连接 mysql 有成熟的npm包 mysql ,如果需要promise,建议使用 promise-mysql;

npm:https://www.npmjs.com/package/mysql

https://www.npmjs.com/package/promised-mysql

在实际开发中,单独的connection 并不能满足业务需要,需要使用连接池进行连接的建立及释放,promise-mysql 建立连接池非常简单:

 1 const config = {
 2     host:‘xxxxxx‘,  // ip也行域名也行
 3     user:‘root‘,
 4     password:‘123456‘,
 5     connectionLimit:30,
 6     database:‘movie‘, // database
 7     port:‘8306‘
 8 };
 9 // 建立连接池
10 const pool = mysql.createPool(config);
11 // 使用pool.query 快速连接执行sql
12 pool.query(‘xxxx‘);
13
14 // 用using/dispsoer 模式构建自动释放资源的连接
15 function getSqlConnection(){
16     return pool.getConnection().disposer((c)=>{
17         pool.releaseConnection(c);
18     });
19 }
20 // 需要使用bluebird 封装具有dispsoer功能的promise对象
21 function query(sql){
22     return Promise.using(getSqlConnection(),(con)=>{
23         return sql?con.query(sql):con;
24     })
25 }

经过对mysql 连接的promise封装,我们可以使用async/await方式进行愉快的编程

2.通过promise-mysql执行事务

通过connection对象的beginTransaction、commit 及 rollback 即可实现

 1 async function execAffairs(){
 2     console.log(‘begin execAffairs‘);
 3      // 写事务
 4     const conn = await query();
 5     await conn.beginTransaction(); // begin;
 6     try{
 7         await conn.query(‘select * from movie_detail where m_id=242167 for update‘);
 8         await conn.query(‘update movie_detail set m_record=7.5 where m_id=242167‘);
 9         await conn.commit();// commit
10         console.log(‘commit 完毕‘);
11     } catch(e){
12         console.log(‘事务出错‘,e);
13         await conn.rollback();
14     }
15    /******
16      // 无需release
17      finally{
18         conn.release();
19      }
20    */
21 }

由于本示例使用了promise-mysql 的disposer 模式,所以无需额外处理 连接的 release

相关代码请见:https://github.com/JhoneLee/nodeScheduleMySql

原文地址:https://www.cnblogs.com/JhoneLee/p/9300395.html

时间: 2024-11-02 03:19:08

nodejs 优雅的连接 mysql的相关文章

nodejs中如何连接mysql

nodejs中如何连接mysql,下面给出一个小Demo. 第一步安装mysql模块npm install mysql 第二步导入mysql模块var mysql = require('mysql'); 第三步连接mysql数据库var connection = mysql.createConnection({    host:'localhost',    user:'root',    password:'',    database:'yudi'}); connection.connect

nodejs连接mysql并进行简单的增删查改

最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs中的mysql模块 npm install mysql 在连接数据库之前,要先引入nodejs连接处理mysql的模块 var mysql = require('mysql'); 类似php连接mysql的方式,编写连接代码 //使用nodejs处理mysql的模块,使用创建连接方法,创建与mysq

nodejs连接mysql实例

1.在工程目录下运行npm install mysql安装用于nodejs的mysql模块: 2.创建db.js模块用于连接mysql,同时定义query查询方法: var mysql = require('mysql'); // 创建一个数据库连接池 var pool = mysql.createPool({ connectionLimit: 50, host: 'localhost', user: 'admin', password: '123456', database: 'rp-test

nodeJS连接MySQL数据库

nodeJS连接MySQL数据库,首先创建一个数据库及表.如下: create databases node; create table test( id int AUTO_INCREMENT PRIMARY KEY , name char(50) )ENGINE=InnoDB DEFAULT CHARSET=utf8; 安装MySQL驱动: $ npm install mysql 下面是nodeJS代码: var sys = require('util'); console.log('正在连接

Nodejs连接MySQL&&实现unity中的登陆注册功能

MySQL是一款常用的开源数据库产品,通常也是免费数据库的首选.查了一下NPM列表,发现Nodejs有13库可以访问MySQL,felixge/node-mysql似乎是最受关注项目,我也决定尝试用一下. 要注意名字,"felixge/node-mysql"非"node-mysql",安装目录 1. node-mysql介绍 felixge/node-mysql是一个纯nodejs的用javascript实现的一个MySQL客户端程序.felixge/node-my

nodejs连接mysql

首先需要安装nodejs 的mysql包 npm install mysql 手动添加数据库依赖: 在安装nodejs目录下的node_modules\npm下package.json的dependencies中新增, "mysql":"latest" 例如: 安装目录图 配置 编写nodejs与mysql交互的代码 var mysql = require('mysql'); var TEST_DATABASE = 'test'; var TEST_TABLE =

使用nodeJS创建API接口,连接mysql数据库(新手向简易版)

博主在学习安卓课程做期末程序的时候就一直想自己做API了,结果网上的教程感觉都太杂,很多都文不对题,找不到一个明确的思路,结果就只能放弃改用jdbc实现数据库交互,现在学了前端,又接触了一点nodeJS之后,才终于有了思路,最近也成功给自己放在服务器上的网站部署了API.现在就来分享一下,也顺便给自己留个备份. ps:只是自己突然想到的做法,而且个人觉得真的是简易版,可能不标准,但亲测能用. 一.前期准备 首先声明:不懂也没关系,直接仿照代码,需要修改的地方我会用红色标注出来,不过mysql一定

Node 连接Mysql并进行增删改查

NPM: NPM的全称是Node Package Manager,类似于ruby的gem,Python的PyPL.setuptools,PHP的pear,是Nodejs中的包管理器.Nodejs自身提供了基本的模块.但是在这些基本模块上开发实际应用需要较多的工作.NPM上已经有近万个Nodejs库或框架,这些库从各个方面可以帮助Nodejs的开发者完成较为复杂的应用. 安装NPM(Unix下): curl http://npmjs.org/install.sh | sh 利用NPM安装Node模

C连接MySQL数据库开发之Windows环境配置及测试

一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:\Program Files\MySQL\MySQL Server 5.5 二.配置工程环境 首先创建一个控制台空项目,打开VS2013,文件--> 新建项目 --> 常规 --> 选择"空项目" 因为我们要使用MySQL数据库的API接口编程,所以需要将工程的附加头文件搜索目录和附件库文件搜索目录,指向MySQL安装目录对应的位置,下面是我机子上mysql库和头