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.代码如下
            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;

       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)
});
}

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

>>node mysqlpool.js

总结

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

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值