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

NTP網路時間通訊協定

NTP(網路時間通訊協定)是一個用來校時的通訊協定,客戶端可以藉由這個協定取得時間伺服器的時間

開發NTP伺服器
var net = require('net');
var dgrqm = require('dgra');

//設計一個函數,用來輸出符合格式的時間字串
function now() {
return new Buffer(new Date().toUTCString() + '\r\n');
}

//建立TCP 伺服器
var tcpServer = net.createServer(function (clinet) {

//當客戶端連上,回傳時間字串並斷開連線
client.write(now());
client.end();
});
tcpServer.listen(13);

//建立UDP 伺服器
var udpServer = dgram.createSocket('udp4',function(msg, rinfo) {

//當客戶端連上,回傳時間字串
var ts = now();
udpServer.send(ts, 0, ts.length, rinfo.port, rinfo.adress);
});

udpServer.bind(13);
開發NTP客戶端
npm install ntp-client
var ntpClient = require ('ntp-client');

//取得網路時間
ntpClient.getNetworkTime('pool.ntp.org', '123', function(err, data){

//如果取得時間失敗
if(err) {
throw.err;
return;
}
//成功會得到一個標準的 Date 時間物件
console.log(data);
});
FTP  檔案傳輸協定 (File Transfer Protocol)
npm install ftp
var FTP = require('ftp');

//建立FTP 客戶端
var client = new FTP();

//等待連線
client.on('ready', function () {
//印出連線成功訊息
console.log('Connceted');
//結束FTP連線
client.end();
});

//連線到FTP 伺服器
client.connect ({
host: 'ftp.speed.hinet.net',
user: 'ftp',
password: 'ftp'
});

發表迴響

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

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