温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Nodejs如何连接mysql并实现增、删、改、查操作

发布时间:2021-06-18 10:06:10 来源:亿速云 阅读:351 作者:小新 栏目:web开发

这篇文章主要介绍了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如何连接mysql并实现增、删、改、查操作”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI