const mysql = require('mysql')

const config = require('./../../config/config.default')

var connection = mysql.createConnection({
host: config.database.HOST,
user: config.database.USERNAME,
password: config.database.PASSWORD,
database: config.database.DATABASE
}) connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack)
return
}
console.log('Database connection successful, connected as id ' + connection.threadId)
}) //查询
// connection.query(`select * from area`, function(err, results, fields) {
// if (err) throw err
// console.log(results[0])
// console.log(fields[0])
// }) //关闭连接
// connection.end(function(err) {
// if (err) {
// console.error('数据库关闭失败' + err)
// }
// console.log('数据库关闭')
// }) module.exports = connection
// 分装

const mysql = require('mysql')

const config = require('./../../config/config.default')

module.exports = {
query: function(sql, params, callback) {
var connection = mysql.createConnection({
host: config.database.HOST,
user: config.database.USERNAME,
password: config.database.PASSWORD,
database: config.database.DATABASE
})
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack)
throw err
}
console.log('Database connection successful, connected as id ' + connection.threadId)
connection.query(sql, params, function(err, results, fields) {
if (err) throw err
callback && callback(results, fields)
connection.end(function(err) {
if (err) {
console.error('数据库关闭失败' + err)
throw err
}
console.log('数据库关闭')
})
})
})
},
// 连接池连接
queryPool: function(sql, params, callback) {
var pool = mysql.createPool({
host: config.database.HOST,
user: config.database.USERNAME,
password: config.database.PASSWORD,
database: config.database.DATABASE
})
pool.getConnection(function(err, connection) {
// 使用连接
connection.query(sql, params, function(err, results, fields) {
if (err) throw err
callback && callback(results, fields)
connection.release()
console.info('连接完成,不再使用,返回到连接池')
})
})
}
} // 调用
const db = require('./index') db.query(`select * from area`, [], function(result, fields) {
console.log('查询结果:')
console.log(result[0].name)
}) db.queryPool(`select * from area`, [], function(result, fields) {
console.log('查询结果:')
console.log(result[0])
})

  

const db = require('../db')
const query = db.queryPoolPromise /**
* @author afacode
* SQL 操作
* @date 2018.08.15
*/
let findAllUser = (value, col = '*') => {
let _sql = `select ${col} from user_login where user_id = ?;`
return query(_sql, value)
}
// 测试
async function user() {
let user = await findAllUser([22], ['username', 'password']) console.log(user)
} user()

  

  

node 连接MySQL及其分装, 连接池连接的更多相关文章

  1. mysql之 远程连接 mysql 很慢,本地连接 mysql 很快 (skip-name-resolve)

    症状:,远程连接 mysql 很慢,但是 本地连接 mysql 很快, ping 和 route 网络通信都是正常的. 解决:mysql 的配置文件中增加如下配置参数:[mysqld]skip-nam ...

  2. java web中jsp连接mysql数据库 以及数据库连接池的使用

    将mysql-connector-java-5.1.6-bin.jar导入到tomcat的lib目录下. 在java项目中,只需要引入mysql-connector-java-5.1.6-bin.ja ...

  3. delphi连接mysql (通过libmysql.dll连接)

    首先在窗体上拖拽sqlconnection和sqlquery两个控件: 然后在测试连接中,写入以下代码(注意exe生成目录下需要有dbxopenmysql50.dll和libmysql.dll) SQ ...

  4. spring boot配置druid连接池连接mysql

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

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

    最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...

  6. spring boot 连接Mysql介绍

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  7. paip.python连接mysql最佳实践o4

    paip.python连接mysql最佳实践o4 python连接mysql 还使用了不少时间...,相比php困难多了..麻烦的.. 而php,就容易的多兰.. python标准库没mysql库,只 ...

  8. Vusual C++连接Mysql和从MySql中取出数据的API介绍

    .1 mysql_real_connect() 2.1.1 函数原型: MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const ...

  9. mysql数据库在Navicat Premium连接的时候出现1862错误

    navicat连接打开时报1862的错误, 很就没有连接mysql看看了,今天连接的时候发现本机的mysql链接不上了,在cmd中执行动作的时候也会叫你去set password,做设置密码的动作时会 ...

随机推荐

  1. python爬虫17 | 听说你又被封 ip 了,你要学会伪装好自己,这次说说伪装你的头部

    这两天 有小伙伴问小帅b 为什么我爬取 xx 网站的时候 不返回给我数据 而且还甩一句话给我 “系统检测到您频繁访问,请稍后再来” 小帅b看了一下他的代码 ): requests.get(url) 瞬 ...

  2. 一个电商项目的Web服务化改造4:方案和架构,通用接口的定义和实现

        最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA.     有点挑战,做完了,会有很大进步. 上一篇,我们明确了我们的"规范和约定". 从 ...

  3. Java基础学习总结(70)——开发Java项目常用的工具汇总

    要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...

  4. Postman做http接口功能测试

    首先,做接口测试前要有明确的接口文档(e.g. http://test.nnzhp.cn/wiki/index.php?doc-view-59) ,假设已经在PC上安装好了Postman. 1. 普通 ...

  5. 洛谷 P1491 集合位置

    P1491 集合位置 题目描述 每次有大的活动,大家都要在一起“聚一聚”,不管是去好乐迪,还是避风塘,或者汤姆熊,大家都要玩的痛快.还记得心语和花儿在跳舞机上的激情与释放,还记得草草的投篮技艺是如此的 ...

  6. href=#与 href=javascript:void(0) 的区别

    <a href="#"> 点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP <a href="javascript:void(0)" ...

  7. HYAppFrame(WinForm框架源代码)安装部署指南

    HYAppFrame是一款基于Win form的应用程序框架,包括serverWeb Service.主程序框架.组织架构.权限控制.菜单导航.基础数据.系统參数.日志管理.定时任务等. 项目地址:h ...

  8. 2015 编程之美初赛第一场 AC题

    题目1 : 彩色的树 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵n个节点的树,节点编号为1, 2, …, n.树中有n - 1条边,任意两个节点间恰好有一条路 ...

  9. 在win10下改变默认的输入法切换Ctrl+Space

    在win10下改变默认的输入法切换Ctrl+Space 学习了:https://www.zhihu.com/question/22288432 在win10下面,有两种风格的控制面板设置: 在输入法上 ...

  10. ORACLE11G 将dataguard的rman备份恢复到測试环境的单机oracle中的具体过程

    . 也就是说此时数据库仅仅能进行不全然恢复了,在打开数据库时得使用resetlogs打开. recover database until scn 11412370952; RMAN> recov ...