node.js学习笔记(10)--mysql模块连接mysql数据库

1.安装

我们需要一个mysql 和node环境,这里我自己的电脑没有安装mysql,用navicat连的同事的。

注意如果碰到这个 “ Host '' xxx . xx . xxx . xxx '' is not allowed to connect to this MySQL server" 。

那么在安装的那台电脑上修改 mysql 数据库中的 user 表 里的 host 项  从"localhost"改称"%" 然后重启mysql 服务就好了。


我们node 连接mysql 需要使用mysql模块。

先使用express-generator生成一个项目 mysqlTest。

先安装依赖模块,

$npm install

然后安装mysql模块。

$npm install mysql --save

2.使用

在router文件夹下建立 mysql.js文件

var db = {};
var mysql = require('mysql');

var user={  
    host: '10.81.36.167',          //地址
    user: 'root',               //用户名
    password: '123456',        //密码
    database: 'nodejs'         //数据库
}

//创建连接
var connection = mysql.createConnection(user);
 
//查询
db.query = function (sql, callback) { 
    connection.query(sql, function (err, rows, fields) {
        if (err) {
            console.log(err);
            callback(err, null);
            return;
        };

        callback(null, rows, fields);
    });
}
module.exports = db;  


3.插入

修改index.js

//添加到var router后面
var db = require('./mysql.js'); 
插入方法:

router.get('/add', function(req, res, next) { 
  var sql =  `insert into users (name,age) values ("丫头",16) `;
  db.query(sql ,function(err,rows,fields){
    if (err) {  
        console.log(err);  
        return;  
    }  
    console.log("插入成功");  
    console.log(rows) 
  })
});
浏览器请求http://localhost:3000/add,看到控制台输出,说明插入成功

OkPacket {
  fieldCount: 0,   
  affectedRows: 1, //受影响的行数
  insertId: 11,   //插入的主键ID
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0 }



4.修改

修改方法:

router.get('/update', function(req, res, next) { 
  var sql =  `update users set name="二丫" where ID =11  `;
  db.query(sql ,function(err,rows,fields){
    if (err) {  
        console.log(err);  
        return;  
    }   
    console.log(rows) 
  })
});
浏览器请求http://localhost:3000/update 看到控制台输出,说明修改成功

OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '(Rows matched: 1  Changed: 1  Warnings: 0',
  protocol41: true,
  changedRows: 1 }

5.查询

查询方法:

router.get('/select', function(req, res, next) { 
  var sql = `SELECT *  from users `;
  db.query(sql ,function(err,rows,fields){
    if (err) {  
        console.log(err);  
        return;  
    }  
    console.log(rows);   
  })
});

浏览器请求http://localhost:3000/select,看到控制台输出,说明查询成功 


6.删除

删除方法
router.get('/delete', function(req, res, next) { 
  var sql =  `delete from users  where ID =11  `;
  db.query(sql ,function(err,rows,fields){
    if (err) {  
        console.log(err);  
        return;  
    }   
    console.log(rows) 
  })
});
浏览器请求http://localhost:3000/delete,看到控制台输出,说明删除成功 
OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0 }




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值