Node.js数据库连接池操作通用工具(MySQL模块)

出处:OSN开源站点数据库通用工具类,OSN源代码地址,https://github.com/obullxl/osnode-site,百度云演示站点,http://obullxl.duapp.com
使用平台:Node.js
依赖的项目:OSN开源站点

/**
 * 数据库模块
*/
var config = require("../config");

var options = {
‘host‘: config.dbhost,
‘port‘: config.port,
‘user‘: config.user,
‘password‘: config.password,
‘database‘: config.db,
‘charset‘: config.charset,
‘connectionLimit‘: config.maxConnLimit,
‘supportBigNumbers‘: true,
‘bigNumberStrings‘: true
};

var mysql = require(‘mysql‘);
var pool = mysql.createPool(options);

/**
 * 释放数据库连接
*/
exports.release = function(connection) {
connection.end(function(error) {
console.log(‘Connection closed‘);
});
};

/**
 * 执行查询
*/
exports.execQuery = function(options) {
pool.getConnection(function(error, connection) {
if(error) {
console.log(‘DB-获取数据库连接异常!‘);
throw error;
}

/*
 * connection.query(‘USE ‘ + config.db, function(error, results) { if(error) { console.log(‘DB-选择数据库异常!‘); connection.end(); throw error; } });
*/

// 查询参数
var sql = options[‘sql‘];
var args = options[‘args‘];
var handler = options[‘handler‘];

// 执行查询
if(!args) {
var query = connection.query(sql, function(error, results) {
if(error) {
console.log(‘DB-执行查询语句异常!‘);
throw error;
}

// 处理结果
handler(results);
});

console.log(query.sql);
} else {
var query = connection.query(sql, args, function(error, results) {
if(error) {
console.log(‘DB-执行查询语句异常!‘);
throw error;
}

// 处理结果
handler(results);
});

console.log(query.sql);
}

// 返回连接池
connection.release(function(error) {
if(error) {
console.log(‘DB-关闭数据库连接异常!‘);
throw error;
}
});
});
};
时间: 2024-11-10 07:37:28

Node.js数据库连接池操作通用工具(MySQL模块)的相关文章

[转]Node.JS使用Sequelize操作MySQL

Sequelize官方文档  https://sequelize.readthedocs.io/en/latest/ 本文转自:https://www.jianshu.com/p/797e10fe2393 Node.JS提供了操作数据库的基础接口,我们可以通过mysql模块的query方法进行操作,但是需要编写SQL语句,对于SQL语句并不精通的人来说有一定的难度,而且在代码中保留SQL语句也有一定的危险性.为了方便进行数据库操作,ORM框架应运而生,Sequelize正是这样的模块. 安装Se

Node.js笔记(0003)---Express框架Router模块学习笔记

这段时间一直有在看Express框架的API,最近刚看到Router,以下是我认为需要注意的地方: Router模块中有一个param方法,刚开始看得有点模糊,官网大概是这么描述的: Map logic to route parameters. 大概意思就是路由参数的映射逻辑 这个可能一时半会也不明白其作用,尤其是不知道get和param的执行顺序 再看看源码里面的介绍: Map the given param placeholder `name`(s) to the given callbac

(二)、node.js的简单操作

现在我们使用命令框来输出一些东西,现在不需要理解,如果看不懂只需要模仿,后续会解释的 我们首先在D盘创建一个文件夹test,然后创建一个test.js的文件 用记事本打开,写console.log('HELLO WORLD');在里面 命令框只输入如下命令 这是在命令框上输出东西 下面我们看看在浏览器中输出东西 我们在创建一个htmltest.js的文件 内容如下: var http = require("http"); http.createServer(function(req, 

数据库连接池(基于MySQL数据库)

使用JDBC是怎么保证数据库客户端和数据库服务端进行连接的? 通过代码: conn=DriverManager.getConnection(url, username, password); JDBC通过这条代码方法的调用建立了一条客户端应用程序到后端数据库的物理连接.期间发生了大量的基于TCP的客户端与服务端的交互. 由于跨机器的网络传输是由较大的网络开销的,所以时间花销很大. 传统的多线程JDBC服务中,我们每进行一次服务都需要分配一个线程,每一个线程去建立一个数据库连接,当这条服务结束之后

Node.js笔记(四)mysql数据库操作

本文不完全参考了<Node学习指南>的第11章 部分资料参考自 http://www.crifan.com/node_js_run_mysql_createclient_error_typeerror_object_has_no_method_createclient/ 感谢他的代码 -------------------------- 第二篇文章里成功连接到了数据库,接下来准备进行增删改查的工作 关于连接的方法,书中给的代码如下: 创建连接 var client = mysql.create

Node.js开发 ---- nodejs操作mysql

app.js[html] view plain copy//初始化包 var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parse

Node.js和mybatis分别实现mysql中like变量模糊查询

<!-- mybatis --> <where> <if test="varName != '' and varName != null" > var_name like '%${varName}%' </if> </where> //node 变量 if (data.varName && data.varName != '') { sql += " where var_name like '%&qu

Node.js 数据库

通过Node.js语言连接数据库,通过Express框架指明数据库连接的位置. 一.Express 框架下Node.js连接数据库的写法 在同一个目录下写setting.js和connet.js,分别负责数据库的设置和连接 setting.js module.exports = { host:'--', user:'root', password:'123456', port:3306, database:'数据库名称' }; connect.js var settings = require(

Async.js解决Node.js操作MySQL的回调大坑

因为JavaScript语言异步特性.在使用Node.js运行非常多操作时都会使用到回调函数,当中就包含訪问数据库.假设代码中的业务逻辑略微复杂一点,回调一层层嵌套.那么代码非常easy进入Callback Hell,不管对写代码的人还是阅读代码的人,都是精神上的折磨. 比如对MySQL的一个事务操作,插入一条posts并插入一条log: var title = 'It is a new post'; connection.beginTransaction(function(err) { if