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