Nodejs连接mysql并实现增、删、改、查操作的方法详解


Posted in NodeJs onJanuary 04, 2018

本文实例讲述了Nodejs连接mysql并实现增、删、改、查操作的方法。分享给大家供大家参考,具体如下:

一、准备

nodejs的教程,大多以操作mongodb为示例。但是mongodb有一些局限性,具体官网上有说。我打算用MySQL,因为多少还有点使用经验。先以研究为主。node-mysql,是目前最火的node下的mysql驱动。初步了用了一下,因为异步回调的这种方式,果然好多坑。

下面这个项目的package name是 mysql,版本是mysql@ 2.5.4

先说明下面的所示代码,均已以下代码开头,后面不在说明

var connection = mysql.createConnection({
 host   : '127.0.0.1',
 user   : 'root',
 password : 'root123',
 port: '3306',
 database: 'my_news_test',
});

代码什么意思很直白,如果想深入,可以去上面的官网查。像host,user之类的配置,写过MySQL数据库应用程序的,应该都很清楚,请自行修改相应参数。后面的代码,假定数据库”my_news_test”中有一个叫node_use的表,表有3个属性

id: 自增主键
name:名字,有unique的限制
age:年龄

测试MySQL

MySQL版本:5.5

二、建库并插入5条记录

Source Database    : my_news_test
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for node_user
-- ----------------------------
DROP TABLE IF EXISTS `node_user`;
CREATE TABLE `node_user` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(30) DEFAULT NULL,
 `age` int(8) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of node_user
-- ----------------------------
INSERT INTO `node_user` VALUES ('1', 'admin', '32');
INSERT INTO `node_user` VALUES ('2', 'dans88', '45');
INSERT INTO `node_user` VALUES ('3', '张三', '35');
INSERT INTO `node_user` VALUES ('4', 'ABCDEF', '88');
INSERT INTO `node_user` VALUES ('5', '李小二', '65');

三、先测试一下环境

1、  首先需要安装nodejs 的mysql包

D:\User\myappejs4>npm install mysql
mysql@2.5.4 node_modules\mysql
├── require-all@0.0.8
├── bignumber.js@1.4.1
└── readable-stream@1.1.13 (inherits@2.0.1, string_decoder@0.10.31, isarray@0
.0.1, core-util-is@1.0.1)

2、编写nodejs与mysql交互的代码

//mysql.js
//首先需要安装nodejs 的mysql包
//npm install mysql
//编写nodejs与mysql交互的代码
var mysql = require('mysql');
var TEST_DATABASE = 'my_news_test';
var TEST_TABLE = 'node_user';
//创建连接
var client = mysql.createConnection({
 user: 'root',
 password: 'root123',
});
client.connect();
client.query("use " + TEST_DATABASE);
client.query(
 'SELECT * FROM '+TEST_TABLE,
 function selectCb(err, results, fields) {
  if (err) {
   throw err;
  }
    if(results)
   {
     for(var i = 0; i < results.length; i++)
     {
       console.log("%d\t%s\t%s", results[i].id, results[i].name, results[i].age);
     }
   }
  client.end();
 }
);

3、运行结果

D:\User\myappejs4>node mysqltest.js
1    admin  32
2    dans88 45
3    张三  35
4    ABCDEF  88
5    李小二 65

Nodejs连接mysql并实现增、删、改、查操作的方法详解

四、Node.js结合MySQL的增、删、改、查操作

1、增

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : '127.0.0.1',
 user   : 'root',
 password : 'root123',
 port: '3306',
 database: 'my_news_test',
});
connection.connect();
var userAddSql = 'INSERT INTO node_user(id,name,age) VALUES(0,?,?)';
var userAddSql_Params = ['Wilson', 55];
//增 add
connection.query(userAddSql,userAddSql_Params,function (err, result) {
    if(err){
     console.log('[INSERT ERROR] - ',err.message);
     return;
    }
    console.log('-------INSERT----------');
    //console.log('INSERT ID:',result.insertId);
    console.log('INSERT ID:',result);
    console.log('#######################');
});
connection.end();

运行如下

D:\User\myappejs4>node mysqltestadd.js
-------INSERT----------
INSERT ID: { fieldCount: 0,
 affectedRows: 1,
 insertId: 6,
 serverStatus: 2,
 warningCount: 0,
 message: '',
 protocol41: true,
 changedRows: 0 }
#######################

Nodejs连接mysql并实现增、删、改、查操作的方法详解

2、改

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : '127.0.0.1',
 user   : 'root',
 password : 'root123',
 port: '3306',
 database: 'my_news_test',
});
connection.connect();
var userModSql = 'UPDATE node_user SET name = ?,age = ? WHERE id = ?';
var userModSql_Params = ['Hello World',99,7];
//改 up
connection.query(userModSql,userModSql_Params,function (err, result) {
  if(err){
     console.log('[UPDATE ERROR] - ',err.message);
     return;
  }
 console.log('----------UPDATE-------------');
 console.log('UPDATE affectedRows',result.affectedRows);
 console.log('******************************');
});
connection.end();

运行结果如下

D:\User\myappejs4>node mysqltest_up.js
----------UPDATE-------------
UPDATE affectedRows 1
******************************

3、查操作

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : '127.0.0.1',
 user   : 'root',
 password : 'root123',
 port: '3306',
 database: 'my_news_test',
});
connection.connect();
var userGetSql = 'SELECT * FROM node_user';
//查 query
connection.query(userGetSql,function (err, result) {
    if(err){
     console.log('[SELECT ERROR] - ',err.message);
     return;
    }
    console.log('---------------SELECT----------------');
    console.log(result);
    console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$');
});
connection.end();

运行的结果如下

D:\User\myappejs4>node mysqltest_query.js
---------------SELECT----------------
[ { id: 1, name: 'admin', age: 32 },
 { id: 2, name: 'dans88', age: 45 },
 { id: 3, name: '张三', age: 35 },
 { id: 4, name: 'ABCDEF', age: 88 },
 { id: 5, name: '李小二', age: 65 },
 { id: 6, name: 'Wilson', age: 55 } ]
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Nodejs连接mysql并实现增、删、改、查操作的方法详解

4、删除操作

var mysql = require('mysql');
var connection = mysql.createConnection({
 host   : '127.0.0.1',
 user   : 'root',
 password : 'root123',
 port: '3306',
 database: 'my_news_test',
});
connection.connect();
var userDelSql = 'DELETE FROM node_user WHERE id = 7';
//ɾ
connection.query(userDelSql,function (err, result) {
    if(err){
     console.log('[DELETE ERROR] - ',err.message);
     return;
    }
    console.log('-------------DELETE--------------');
    console.log('DELETE affectedRows',result.affectedRows);
    console.log('&&&&&&&&&&&&&&&&&');
});
connection.end();
运行的结果如下
D:\User\myappejs4>node mysqltest_del.js
-------------DELETE--------------
DELETE affectedRows 1
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

Nodejs连接mysql并实现增、删、改、查操作的方法详解

增、删、改、查操作应会部完成了!

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

NodeJs 相关文章推荐
使用nodejs、Python写的一个简易HTTP静态文件服务器
Jul 18 NodeJs
Nodejs关于gzip/deflate压缩详解
Mar 04 NodeJs
nodejs爬虫抓取数据乱码问题总结
Jul 03 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
详解nodejs微信公众号开发——3.封装消息响应模块
Apr 10 NodeJs
详解nodejs实现本地上传图片并预览功能(express4.0+)
Jun 28 NodeJs
nodejs更改项目端口号的方法
May 13 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
nodejs实现聊天机器人功能
Sep 19 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 #NodeJs
详解NODEJS的http实现
Jan 04 #NodeJs
Nodejs中crypto模块的安全知识讲解
Jan 03 #NodeJs
nodejs+mongodb+vue前后台配置ueditor的示例代码
Jan 02 #NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 #NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 #NodeJs
使用nodejs+express实现简单的文件上传功能
Dec 27 #NodeJs
You might like
检测png图片是否完整的php代码
2010/09/06 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
js自定义事件代码说明
2011/01/31 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
详解从Vue-router到html5的pushState
2018/07/21 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
从表单校验看JavaScript策略模式的使用详解
2020/10/17 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
Python设计模式之工厂方法模式实例详解
2019/01/18 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
文秘专业应届生求职信范文
2013/11/14 职场文书
电子信息工程自荐信
2014/05/26 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
2014年资料员工作总结
2014/11/18 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
创卫工作总结2015
2015/04/22 职场文书