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();