Node.js下Mysql数据库连接

1.创建mysql连接

与其他模块一样,需要在项目根目录下安装mysql模块

# npm install mysql

MYSQL有server和client两个模块,client是用来连接server的。关于两者的区别,mysql-server相当于服务器,管理数据库运行并处理数据,mysql-client相当于客户端,帮助用户访问和操作数据库。

在相对应的js文件中创建mysql连接对象

var mysql = require('mysql');
var con = mysql.createConnection({
  host:'localhost',  //mysql服务器,本地为localhost
  user:'admin',  //连接mysql的用户名
  password:'123456',  //连接mysql的密码
});

//判断是否成功链接
connection.connect(function(err){
  console.log('connection success');
});

//关闭数据库连接
connection.end(function(err){
  console.log('connection close');
});

2.数据库连接

首先建立一个Node.js的MySQL操作基类BaseModel,其中包含数据库连接、插入、修改、删除、条件获取数据列表和数据转义等操作方法。

创建一个js文件,命名为basemodel.js。

module.exports = function(){
  //数据查询接口
  this.findOneById = function(tableName,id,callback){};

  //数据插入接口
  this.insert = function(tableName,rowInfo,acllback){};

  //数据修改接口
  this.modify = function(tableName,id,rowInfo,callback){};

  //数据删除接口
  this.remove = function(table,id,callback){};

  //数据条件查询接口
  this.find = function(tableName,whereJson,orderByJson,limitArr,fieldsArr,callback){};

  function __constructor(){};

};

再创建一个名为util.js工具类用于存放一些公有方法,包含json配置文件解析的方法。

var fs = require('fs'),
util = require('util');
exports.get = function(fileName,key){
  var configJson = {};
  try{

    //以utf8格式同步读取配置文件信息
    var str = fs.readFileSync(fileName,'utf8');

    //将读取后的配置文件内容转化为json对象
    configJson = JSON.parse(str);
  }catch(e){
    sys.debug('JSON parse fail');
  }

  //返回需要的配置信息的值
  return configJson[key];
};

创建一个名为config.json的配置文件,存放数据库配置信息。

{
    "db":{
        "host":"localhost",
        "port":"3306",
        "user":"root",
        "password":"password",
        "dbName":"dbname"
    }
}

然后在创建的项目文件中进行操作,例如在app.js中,先声明变量Util和dbClient。

var Util = require('./util'),//引入util.js工具类
mysql = require('mysql'),//获取mysql模块对象
dbClient;//全局的mysql连接句柄

实例化BaseModel对象。

var BaseModel = require('./base_model');//引入base_model基类
var baseModel = new BaseModel();//实例化baseModel对象

应用util工具类模块,实现BaseModel的构造函数。

function __constructor(){
  //读取config.json配置文件,并获取其中db的配置信息
  var dbConfig = Util.get('config.json','db');

  client = {};//获取mysql的配置信息
  client.host = dbConfig['host'];//读取配置文件中mysql的host值
  client.port = dbConfig['port'];//读取配置文件中mysql的port值
  client.user = dbConfig['user'];//读取配置文件中mysql的数据库用户名
  client.password = dbConfig['password'];//读取配置文件中mysql的数据库密码

  //创建mysql连接
  dbClient = mysql.createConnection(client);//创建mysql连接对象
  dbClient.connect();//连接mysql服务器

  //连接mysql服务器指定的数据库
  dbClient.query('USE ' + dbConfig['dbName'],function(error,results){
    if(error){
      console.log('ClientConnectionReady Error: ' + error.message);
      dbClient.end();
    }
    console.log('connection local mysql success');
  });
}
__constructor();

测试数据库连接

# node app.js

 

posted @ 2015-11-19 11:03  卡布奇诺233  阅读(373)  评论(0编辑  收藏  举报