Node.js 模組(五)

行程與執行緒  Process & Threads

執行外部命令

這是最常被需要的功能之一,因為往往我們需要執行額外的應用程式或是命令,來協助我們完成工作。為達到這個功能,引入Node.js內建的child_process核心模組,然後/使用它的exec()方法即可。

var child_process = require('child_process');

//執行命令 ls -lh /usr
child_precess.exec('ls -lh /usr', function(err, stdout, stderr)
{
if (err) {
throw err;
return;
}
console.log(stdout);
});
//windows 系統
var path = 'dir c:\\';

//Linux 系統
 var path = 'ls -lh /usr';

//執行命令
child_process.exec(path, function(err, stdout, stderr)
{
if (err) {
throw err;
return;
}
console.log("\uFEFF",stdout);
});
會出現中文字亂碼

解決 PowerShell 下 Node.js 中文亂碼

設定 PowerShell 編碼
在 PowerShell 執行一次:

$OutputEncoding = [Console]::OutputEncoding =[Text.UTF8Encoding]::UTF8

這樣就會強制輸出為 UTF-8。


網路    Networkng

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 不會出現錯誤。