作者:bake
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的意思。這樣做可以加速內部資料處裡效能,也能更易於管理記憶體和硬碟空間的使用。
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 不會出現錯誤。