MySQL

簡介

非常常用的套件,也是簡單易懂... 最近也開始支援pool的查詢方式,讓node.js的database操作更加方便ㄛ!

Github repository

https://github.com/felixge/node-mysql

Installation

# npm install mysql

Sample

這個是建立連線的例子,因為mysql套件曾經有幾個改版有影響到connection的建立方式,目前使用這樣的判斷可以比較安全的建立連線...

var mysql = require('mysql')
/**
 * 連線的參數設定,包含host, port, username, password, database name等
 */
var db_options = {
    host: 'nko-demo.my.micloud.tw',
    port: 3306,
    user: 'nko',
    password: 'nko2012',
    database: 'nko2012'
};

/**
 * 執行連線動作
 */
var mysql = new require('mysql'), db = null;
if(mysql.createConnection) { //2.0.x
  console.log('using createConnection......');
  db = mysql.createConnection(db_options);
} else if(mysql.createClient) { //0.9.x
  console.log('using createClient......');
  db = mysql.createClient(db_options);
} else { //more older...
  console.log('using mysql.Client....');
  db = new mysql.Client(db_options);
  db.connect(function(err) {
      if(err) {
          console.error('connect db ' + db.host + ' error: ' + err);
          process.exit();
      }
  });
}

/**
 * 將資料庫物件發佈
 * PS: 一般可以直接發佈connection物件,這邊沒這樣做...
 * 原因是因為希望後續引用此物件者也可以執行關閉資料庫的動作
 * 通常在standalone程式會需要執行官必的動作,以避免connection將process卡住
 */
exports.db = db;

而任何的SQL在此套件內都是使用query這個function即可達成,作者封裝insert, update, delete, select甚至exec等指令到同一個function,讓操作相當簡單...

/**
 * 這邊直接引用上面mysql-config所發佈的設定
 */
var config = require('./mysql-config')
  , db = config.db;

/**
 * 使用query function來執行select的動作範例
 */
exports.doit = function() {
db.query('select count(*) as cnt from tb_post', function(err, rows, fiels) {
  if(err) return console.log(JSON.stringify(err));
  console.log(rows);
});
}

/**
 * 執行doit function
 */
this.doit();

/**
 * 執行完畢直接關閉db,以離開程序
 */
db.end();

results matching ""

    No results matching ""