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 后缀名判断限制代码
Mar 31 NodeJs
nodejs入门详解(多篇文章结合)
Mar 07 NodeJs
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
Sep 26 NodeJs
轻松创建nodejs服务器(10):处理上传图片
Dec 18 NodeJs
浅谈NodeJS中require路径问题
May 07 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
nodejs基础知识
Feb 03 NodeJs
NodeJS 中Stream 的基本使用
Jul 30 NodeJs
nodejs图片处理工具gm用法小结
Dec 12 NodeJs
nodejs的安装使用与npm的介绍
Sep 11 NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 NodeJs
Node.js实现爬取网站图片的示例代码
Apr 04 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
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
JavaScript错误处理
2015/02/03 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
利用Python批量生成任意尺寸的图片
2016/08/29 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
Django添加feeds功能的示例
2018/08/07 Python
详解Python 函数如何重载?
2019/04/23 Python
详解python 爬取12306验证码
2019/05/10 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
python语言基本语句用法总结
2019/06/11 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
室内设计专业个人的自我评价
2013/10/19 职场文书
网站设计师的岗位职责
2013/11/21 职场文书
留学生如何写好自荐信
2013/12/27 职场文书
小学学校评估方案
2014/06/08 职场文书
消防宣传口号
2014/06/16 职场文书
房屋租房协议书范本
2014/12/04 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
python基于turtle绘制几何图形
2021/06/15 Python
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android