Node.js 模組(四)

資料庫  DataBase

MySQL

npm install mysql

建立資料庫連線

一旦裝好mysql模組之後,就可以使用createConnection()建立一個新連線,並設定資料庫主機位置、帳號、密碼。最後再以connect()方法開始進行連線。

範例

var mysql = require('mysql');

//建立連線,並設定主機位置、帳號、密碼
var connection = mysql.createConnection( {
host: 'localhost',
user: 'fred',
password: 'fred1234'
});

//開始連線
connection.connect(function(err) {
if (err)
throw err;

//印出連線成功訊息
console.log('Connection');

//關閉連線
coonection.end();
});

查詢資料

MySQL支援了SQL的表達式,我們可以直接下達SQL語法進行資料查詢。

var mysql = require('mysql');

//建立連線,並設定主機位置、帳號、密碼
var connection = mysql.createConnection( {
host: 'localhost',
user: 'fred',
password: 'fred1234'
});

//開始連線
connection.connect(function(err) {
if (err)
throw err;

var sql = 'Select * from myTable';
connection.query(sql, function(err, rows) {
if (err)
throw err;
//印出查詢結果
console.log(rows);
//關閉連線
connectuin.end();
});
});

帶入條件查詢

var mysql = require('mysql');

//建立連線,並設定主機位置、帳號、密碼
var connection = mysql.createConnection( {
host: 'localhost',
user: 'fred',
password: 'fred1234'
});

//開始連線
connection.connect(function(err) {
if (err)
throw err;
var sql = 'select * from myTable where name=? and age=?';
var params = ['Fred', 29];
connection.query(sql, params, function(err, rows) {
if (err)
throw err;
console.log(rows);
connection.end();
});
});

MongoDB   

MongoDB是由10gen團隊在2007年10月所發展,2009年2月首度推出。表面上,MongoDB是用JavaScript開發者最孰悉的JSON格式儲存資料,對JavaScript的使用者來說,操作上和使用概念都相當易懂。
嚴格說,MongoDB內部是用BSON的格式儲存資料,將JSON資料轉成Binnary的形式處理,所以BSON即為Binary JSON的意思。這樣做可以加速內部資料處裡效能,也能更易於管理記憶體和硬碟空間的使用。

安裝MongoDB驅動程式

npm install mongodb

建立連線

var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;

//連接MongoDB
MongoClient.connect=('mongodb://localhost/test', function(err, db) {

//選擇資料表 contact
db.collection('contact', function(err, collection) {

//取得 contact資料表所有資料
collection.find({}, function(err, rows) {

//印出 contact資料表裡所有的資料
for (var index in rows)
console.log(rows[index]);
});
});
});

而URI的格式如下,我們亦可以設定MongoDB的帳號及密碼,以及指定port的號碼:

語法如下:

mongodb://[username]:[password]@[host]:[port]/[database]

插入新資料

collection.insert(docs[, options], callback)
collection.insert({
name: 'Fred',
tel: '0912345XXX',
address: 'Taipei'
}, function(err, docs) {
if (err) {
throw err;
return;
}
console.log('Insert data sucess');
});

⬆目前測試有問題:

問題是:沒有test的資料庫,也沒有contact的資料表,執行connect、insert 不會出現錯誤。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料