nodejs实现的连接MySQL数据库功能示例


Posted in NodeJs onJanuary 25, 2018

本文实例讲述了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'
});
// SELECT * FROM users
// 让我们的方法支持两种模式
// 一种是只传入SQL语句和回调函数
// 一种是传入SQL语句、参数数据、回调函数
exports.query = function (sql, P, C) {
 var params = [];
 var callback;
 // 如果用户传入了两个参数,就是SQL和callback
 if (arguments.length == 2 && typeof arguments[1] == 'function') {
  callback = P;
 } else if (arguments.length == 3 && Array.isArray(arguments[1]) && typeof arguments[2] == 'function') {
  params = P;
  callback = C;
 } else {
  throw new Error('对不起,参数个数不匹配或者参数类型错误');
 }
 // 如果用户传入了三个参数,那么就是SQL和参数数组、回调函数
 // 从池子里面拿一个可以使用的连接
 pool.getConnection(function (err, connection) {
  // Use the connection
  connection.query(sql, params, function () {
   // 使用完毕之后,将该连接释放回连接池
   connection.release();
   callback.apply(null, arguments);
  });
 });
};

3、查询示例

var express = require('express');
var db = require('./db');
var router = express.Router();
router.get('/',function(req, res, next){
  db.query("select * from app",function(err,result){
     //console.log(result);
    res.send(JSON.stringify (result));
  });
});
module.exports=router;

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
windows系统下简单nodejs安装及环境配置
Jan 08 NodeJs
将nodejs打包工具整合到鼠标右键的方法
May 11 NodeJs
跟我学Nodejs(二)--- Node.js事件模块
May 21 NodeJs
图片上传之FileAPI与NodeJs
Jan 24 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 NodeJs
nodejs实现截取上传视频中一帧作为预览图片
Dec 10 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 NodeJs
NodeJs实现简单的爬虫功能案例分析
Dec 05 NodeJs
NodeJs之word文件生成与解析的实现代码
Apr 01 NodeJs
Nodejs中的require函数的具体使用方法
Apr 02 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 #NodeJs
nodejs 最新版安装npm 的使用详解
Jan 18 #NodeJs
使用npm安装最新版本nodejs
Jan 18 #NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 #NodeJs
nodejs结合Socket.IO实现的即时通讯功能详解
Jan 12 #NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 #NodeJs
nodejs使用http模块发送get与post请求的方法示例
Jan 08 #NodeJs
You might like
php中使用Akismet防止垃圾评论的代码
2011/06/10 PHP
php操作xml
2013/10/27 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
使用Python操作excel文件的实例代码
2017/10/15 Python
django模板语法学习之include示例详解
2017/12/17 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
ipython和python区别详解
2019/06/26 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
python数据爬下来保存的位置
2020/02/17 Python
Pycharm修改python路径过程图解
2020/05/22 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
详解CSS3中的box-sizing(content-box与border-box)
2019/04/19 HTML / CSS
Linux如何压缩可执行文件
2013/10/21 面试题
业务员薪酬管理制度
2014/01/15 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
加薪申请报告范本
2015/05/15 职场文书
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
2021/05/17 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang