node.js操作MySQL数据库

版权声明:虽然我很善良,但是原创文章还是问问我再转载哦<( ̄︶ ̄)> https://blog.csdn.net/Vivian_jay/article/details/72650304

一、安装MySQL

这一步一定不能落下,我一开始图方便就直接运行了node.js代码,结果出现了error。
我安装后的数据库用户名和密码均为默认值,分别为用户名“root”和密码为空,每到提示输入密码时直接回车即可。

二、建立可使用的数据库

这一步可以有两种做法:

  • 其一:直接使用命令行创建一个数据库并添加数据来使用。
  • 其二:编写后缀为‘.sql’的文件并将其导入到数据库,下面详解做法二操作步骤:

    1. SQL文件[websites.sql]:
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
--  Table structure for `websites`
-- ----------------------------
DROP TABLE IF EXISTS `websites`;
CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
  `country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
--  Records of `websites`
-- ----------------------------
BEGIN;
INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '菜鸟教程', 'http://www.runoob.com/', '4689', 'CN'), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

2.进入SQL命令行模式,新建数据库test后退出到cmd:

2

3.在cmd中导入websites.sql文件到数据库test:

导入数据库

三、启用数据库

进入SQL命令行模式并启用数据库test

4

四、执行node.js代码

这里的执行文件为test.js

1. 实现基本的连接、查询与关闭连接:

var mysql  = require('mysql');  //调用MySQL模块

//创建一个connection
var connection = mysql.createConnection({     
  host     : 'localhost',           //主机
  user     : 'root',                //MySQL认证用户名
  // password : '000000',           //MySQL认证用户密码,没有密码可省略
  // port: '3306',                  //端口号,默认为3306
  database: 'test'                  //数据库名称
}); 

//创建一个connection
connection.connect(function(err){
    if(err){        
        console.log('[query] - :'+err);
        return;
    }
    console.log('[connection connect]  succeed!');
});  
//执行SQL语句
connection.query('SELECT * FROM websites', function(err, result) { 
     if (err) {
        console.log('[query] - :'+ err.message);
        return;
     }
     console.log('--------------------------------');  
     console.log('Result: \n', result);  
     console.log('--------------------------------');    
});  
//关闭connection
connection.end(function(err){
    if(err){        
        return;
    }
    console.log('[connection end] succeed!');
});

执行结果如下:

result1
result2

2.插入数据

// 插入数据
var addSQL = 'INSERT INTO websites(id, name, url, alexa, country) VALUES (0, ?, ?, ?, ?)'
var addSQLParams = ['咋啦爸爸','http://localhost','2','CN']
connection.query(addSQL, addSQLParams, function (err, result) {
    if (err) {
        console.log('[INSERT ERROR] - ', err.message)
        return
    }
    console.log('----------------- INSERT ---------------')
    console.log('[INSERT ID] - ', result)
    console.log('----------------------------------------')
}) 

注意这里的result并不是执行插入操作后更新的数据库,而是一系列参数:

insert

再次查询数据库,发现已经更新:

insertResult

3. 修改数据

// 修改数据
var modSQL = 'UPDATE websites SET name = ?, url = ? WHERE id = ?'
var modSQLParams = ['咋了妈妈', 'http://127.0.0.1', 6]
connection.query(modSQL, modSQLParams, function (err, result) {
    if (err) {
        console.log('[UPDATE ERROR] - ', err.message)
        return
    }
    console.log('------------- UPDATE --------------');  
     console.log('Result: \n', result);  
     console.log('----------------------------------'); 
})

返回参数:

update

数据库更新:
update

4. 删除数据

// 删除数据
var modSQL = 'DELETE FROM websites WHERE id = 6'
connection.query(modSQL, function (err, result) {
    if (err) {
        console.log('[DELETE ERROR] - ', err.message)
        return
    }
    console.log('------------- DELETE --------------');  
     console.log('Result: \n', result);  
     console.log('----------------------------------'); 
})

删除成功同时返回参数:
delete

其实使用node.js操作MySQL的基本思想就是建立连接后再query中使用MySQL语句。
代码和sql文件参考:Node.js 连接 MySQL

猜你喜欢

转载自blog.csdn.net/Vivian_jay/article/details/72650304