node连接数据库mysql

来源:互联网 发布:iphoto下载 mac 编辑:程序博客网 时间:2024/05/29 19:43

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

在上一节的基础上增加配置文件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('释放数据库连接成功')        }    })}//数据库执行sqlvar 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;

访问即可
这里写图片描述

原创粉丝点击