node连接数据库mysql

连接数据库有两种连接方式,一是:直接连接,每次连接都试创建一个新的连接,二是:使用连接池
在这里就不介绍第一种方式了,直接使用第二种方式

在上一节的基础上增加配置文件baseConfig.js

/**
 * Created by jinwei on 2017/7/31.
 */

var dataSource={
    'dbhost':'localhost',
    'port':'3306',
    'user':'root',
    'password':'Pass299522',
    'db':'test',
    'charset':'utf8',
    'maxConnectLimt':10
}

module.exports = dataSource;

创建数据库公共文件mysql.js

/**
 * 创建数据库连接
 */
var baseConfig = require("./config/baseConfig");
var mysql = require('mysql')
var pool = mysql.createPool({
    'host': baseConfig.dbhost,
    'port': baseConfig.port,
    'user': baseConfig.user,
    'password': baseConfig.password,
    'database': baseConfig.db,
    'charset': baseConfig.charset,
    'connectionLimit': baseConfig.maxConnectLimt,
    'supportBigNumbers': true,
    'bigNumberStrings': true
})
//释放连接
var release=function(connection){
    connection.release(function(error){
        if(error){
            console.log('释放数据库连接失败')
        }else{
            console.log('释放数据库连接成功')
        }
    })
}

//数据库执行sql
var execSql = function(sql,args,handler){
    //获取查询参数
    this.execQuery=function(){
        pool.getConnection(function(error,connection){
            if(error){
                console.log("数据库连接异常!")
                throw error;
            }
            //执行查询
            if(!args){
                var query = connection.query(sql,function(error , result){
                    if(error){
                        console.log('数据库查询操作异常:sql='+sql)
                        throw error;
                    }
                    handler(error ,result);
                    console.log("执行sql:"+query.sql)
                })

            }else{
                var query = connection.query(sql,args,function(error ,result){
                    if(error){
                        console.log('数据库查询操作异常:sql='+sql)
                        throw  error;
                    }
                    handler(error,result)
                })
                console.log("执行sql:"+query.sql)
            }
            console.log('释放连接')
            connection.release()
        })

    }
}

module.exports=execSql

在要调用的模块引入mysql.js

users.js

var express = require('express');
var router = express.Router();
var execSql = require('../mysql')


/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});
router.get('/getList',function(req ,res ,next){
  res.send('test user getList')
});
router.get('/testMysql',function(req ,res ,next){
  var sql ='SELECT * FROM users';
    var query = new execSql(sql,null,function(error,result){
        if(error){
            console.log("查询失败:"+error)
            throw error;
        }
        console.log("查询数据:"+JSON.stringify(result))
        res.send(result);
    })
    query.execQuery();
});
router.get('/addUser',function(req ,res ,next){
    var sql ='INSERT INTO users(id,username,age,sex) VALUES(?,?,?,?)';
    var args=['5','adduse',36,'2'];
    var query = new execSql(sql,args,function(error,result){
        if(error){
            console.log("插入失败:"+error)
            throw error;
        }
        console.log("插入数据:"+JSON.stringify(result))
        res.send(result);
    })
    query.execQuery();
});

module.exports = router;

访问即可
这里写图片描述


想了解更多java相关技术,请关注公众号“JavaEE那些事”

扫描下面二维码,更多技术资料等你来拿
这里写图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值