1. 程式人生 > >使用node封裝連線各類資料庫

使用node封裝連線各類資料庫

這篇文章直接指出node如何連線mysql資料庫,node如何連線mongodb,node如何連線redis

mysql連線:

var mysql = require('mysql');
//mysql配置
var pool = mysql.createPool({    
    host:'192.168.1.1339',       //主機
    user:'index',            //MySQL認證使用者名稱
    password:'123456',
    port:'3306',
    database:'ys_finance_dev'
});
/***使用案例****/
pool.getConnection(function(err,connection) {  
    if(err) {  
        console.log("建立連線失敗",err);  
    }else{  
        //成功連結
        
    }
     connection.release();//釋放,如果不釋放連結累計會越來越多,最終導致伺服器cpu過高或者癱瘓
}

redis連線:

    var redis = require('redis'),
	RDS_PORT = 6379,        //埠號
	RDS_HOST = '192.168.1.171',    //伺服器IP
	RDS_OPTS = {},            //設定項
	client = redis.createClient(RDS_PORT,RDS_HOST,RDS_OPTS);
	client.on('ready',function(err){
		if(err){
			console.log(err)
		}
		console.log('ready')
	})
    //報錯監控,以防萬一
    client.on("error", function (err) {
       report('RedisError');
       logger.error("Error " + err);
    });
 
    var client = redis.createClient({
        retry_strategy: function (options) {
            if (options.error.code === 'ECONNREFUSED') {
                report('連線被拒絕');
            }
            if (options.times_connected > 10) {
                report('重試連線超過十次');        
            }
        // reconnect after 
            return Math.max(options.attempt * 100, 3000);
        }
    });
    //捕獲異常,防止node程序中斷
    function uncaughtExceptionHandler(err){
        if(err && err.code == 'ECONNREFUSED'){
            
        }else{
            process.exit(1);
        }
    }
    process.on('uncaughtException', uncaughtExceptionHandler);

    /**使用案例***/
    client.select('2', function(error){
        client.set("some key", "some val");
    }

MongoDB連線:

var MongoClient = require("mongodb").MongoClient;
var DB_CONN_STR = "mongodb://localhost:27017/";
module.exports = {
  mongoConnect: function(dbName,sucessCb,failCb){
    MongoClient.connect(DB_CONN_STR + dbName,(err,db) => {
      if(err){
//      console.log(err)
        failCb(err)
      }else{
//      console.log("資料庫連結成功")
        sucessCb(db)
      }
    })
  }
}