node.js学习笔记(10)--mysql模块连接mysql数据库
扫描二维码
随时随地手机看文章
1.安装
我们需要一个mysql 和node环境,这里我自己的电脑没有安装mysql,用navicat连的同事的。
注意如果碰到这个 “Host''xxx.xx.xxx.xxx''isnot
 allowedtoconnectto
 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 }
			



		 