node.js mysql module 新舊版連線方式比一比


node.js mysql module 新舊版連線方式比一比

/* 連線設定部分,參數名稱相同,可以直接延用 */
var db_options = { 
    host: 'your.database.ip.address',
    port: 3306,
    user: 'username',
    password: 'password',
    database: 'db_name'
};

/* (1) mysql@2.0.0-alpha4連線設定 */
var mysql = require('mysql')
exports.db = mysql.createConnection(db_options);                                                                                                                                                             


/* (2) mysql@0.9.6連線設定 */
var mysql = new require('mysql'), db = null;
db = mysql.createClient(db_options); <-- 新版已經沒有mysql.createClient這個建構式了...


/* (3) 這邊有一個比較安全的匯整寫法 */
if(mysql.createConnection) {
    console.log('Using createConnection...');
    db = mysql.createConnection(db_options);    //2.0的寫法
} else if(mysql.createClient) {
    console.log('Using createClient...');
    db = mysql.createClient(db_options);    // 0.9的寫法
} else {
    console.log('Using Client...');
    db = new mysql.Client(db_options);      // 更早期版本的建構方式
    db.connect(function(err) {
        if(err) {
            console.error('connect db ' + db.host + ' error: ' + err);
            process.exit();
        }
    });
}

/* 查詢部分不變 */
db.query('select 1+1 as summ', function(err, rows, fiels) {
  if(err) return console.log(JSON.stringify(err));
  console.log(rows);
  console.log(fiels);
  db.end();
});