node.js教學-操作MySQL資料庫

8 / 14, 2013 JS , node.js , 網路

這是node.js教學的第五篇 不知道各位讀者有沒有覺得奇怪:我寫了node.js教學文那麼久,好像沒有說怎樣在node.js使用資料庫啊!所以,我現在就教大家怎樣在node.js內使用資料庫。由於MySQL資料庫是目前最受歡迎的,所以就教大家使用MySQL資料庫了……

此文章假設大家已經安裝好MySQL伺服器和知道SQL指令了,所以在這裡就不詳細提及了。 首先,由於node.js沒有內建MySQL API,所以我們就要安裝額外模組了。請執行以下指令:

npm install mysql

等到指令執行完成的時候,教學就可以開始了。首先,我們要連接到MySQL伺服器,以下是範例:

//載入MySQL模組
var mysql = require('mysql');
//建立連線
var connection = mysql.createConnection({
    host: 'MySQL伺服器位址',
    user: 'MySQL使用者名稱',
    password: '密碼',
    database: '預設資料庫'
});

//開始連接
connection.connect();

//接著就可以開始進行查詢
connection.query('SELECT 1 + 1 AS solution',function(error, rows, fields){
    //檢查是否有錯誤
    if(error){
        throw error;
    }
    console.log(rows[0].solution); //2
});

那怎樣插入資料呢?其實也很容易的。看看以下的例子:

//插入資料
var data = {
    rows: 'columns',
    strings: 'integers'
};

connection.query('INSERT INTO `table` SET ?', data, function(error){
    if(error){
        console.log('寫入資料失敗!');
        throw error;
    }
});

感覺上有點和PDO和MySQLi的Prepared Statements相似,不過實際上它是使用和 

mysqli_real_escape_string 

相似的方法來預備SQL語句的。還有開發這個模組的開發人員正準備加入Prepared Statments的支援,所以很快這就會成為過去了。

啊!我忘了告訴大家一件事。當你完成了所有MySQL工作後,記得要關閉連線啊。

connection.end();

這樣就不會殘留用不著的連線佔用記憶體了。

(這次的node.js教學就這樣完結了。下一次我會介紹一下package.json,一個神奇的檔案。)