Node.JS入门——对mysql数据库的增,删,改,查操作




前言

Node作为一门后端语言,无可避免就需要对数据库进行操作。本篇讲解Node对mysql数据库的基本操作

内容

在对mysql进行操作前,应该首先在文件的目录下下载MySQL模块
这里写图片描述
注意:安装前先把目录cd到js文件的目录下,这样执行安装命令时,会找到目录下node_modules,并安装在此目录下,否则使用mysql时,你会出现 Error: Cannot find module ‘mysql’
1.对数据操作两种方式

  • 直接操作数据库,其实就是操作数据库的时候才会对数据库进行连接,执行完操作需要对连接进行关闭。

    1.目录结构如下
    这里写图片描述

    2.代码如下

var mysql=require('mysql');  //加载mysql的模块

var connection=mysql.createConnection({
    host:'127.0.0.1',
    user:'root',
    password:'1',
    database:'test',
    port:'3306'

})
//连接mysql
connection.connect(function(err){
    if(err){
        console.log('query-'+err);
        return;
    }

    console.log('conection connect succedd');
})


//插入方法
var userAddsql='insert into user(uname,pwd) values(?,?)';
var param=['aaa','aaa'];

connection.query(userAddsql,param,function(err,rs){
    if(err){
        console.log('insert err',err.message);
        return;

    }
    console.log('insert success');
});

var obj=new Object();

//查询方法
connection.query('select * from user',function(err,rs,fields){
    if(err){
        console.log('insert err',err.message);
        return;
    }

    console.log('insert success'+rs[0].uname);
    console.log(fields);
});

//更新方法
var updatesql='update user set pwd=? where uname=?'
var params=['bbb','aaa']
connection.query(updatesql,params,function(err,rs){
    if(err){
        console.log('update err',err.message);
        return;
    }

    console.log('update succes')
});

//删除方法
connection.query('delete  from user',function(err,rs){
    if(err){
        console.log('insert err',err.message);
        return;
    }

    console.log('delete succes)
});

//关闭connect连接
connection.end(function(err){
    if(err){
        return;
    }
    console.log('connection end succedd');
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 连接池操作,在数据库启动的时候就会创建多个连接放在连接池中,操作数据库的时候直接从连接池中取,节省了开销

    1.目录结构
    这里写图片描述
    2.代码如下
            optfile.js

var mysql=require('mysql');

function OptPool(){
    this.falg=true; //是否连接过
    this.pool=mysql.createPool({
        host:'127.0.0.1',
        user:'root',
        password:'1',
        database:'test',
        port:'3306'
    });

    this.getPool=function(){
        if(this.falg){
            //第一次进入,初始化这个连接池

this.pool.on('connection',function(connection){
                connection.query('select session auto_increment_increment');
                this.falg=false;
            })
        }

        return this.pool;
    }
}

module.exports=OptPool;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

       mysqlpool.js

var OptPool=require('./OptPool');
var optPool=new OptPool();
var pool=optPool.getPool();
if(data.uname!==undefined&&data.pwd!==undefined){
        pool.getConnection(function(err,conn){
            if(err){
                console.log(err);
            }

            //插入方法
            var userAddsql='insert into user(uname,pwd) values(?,?)';
            var param=[data.uname,data.pwd];

            conn.query(userAddsql,param,function(err,rs){
                if(err){
                    console.log('insert err',err.message);
                    return;
                }
                console.log('insert success');
            });

        })
//更新方法
var updatesql='update user set pwd=? where uname=?'
var params=['bbb','aaa']
conn.query(updatesql,params,function(err,rs){
    if(err){
        console.log('update err',err.message);
        return;
    }

    console.log('update succes')
});

//删除方法
conn.query('delete  from user',function(err,rs){
    if(err){
        console.log('insert err',err.message);
        return;
    }

    console.log('delete succes)
});
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

3.转到目录下,指定dos命令

>>node mysqlpool.js
  • 1

总结

大多数情况下都在采用连接池的方式,会大大节省开销,本篇都是一些简单的操作,等到后面学习了一些express等框架,都会都这些代码进行包装。




阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页