node.js(一)

NodeJS是一個使用了Google高性能V8引擎的服務器端JavaScript實現。它提供了一個(幾乎)完全非阻塞I/O棧,與JavaScript提供的閉包和匿名函數相結合,使之成爲編寫高吞吐 量網絡服務程序的優秀平臺,通過Node.js,我們可以用JavaScript編寫Server端應用。
Node.js採用C++語言編寫而成,是一個後端Javascript的運行環境,這意味着你可以編寫系統級或者服務器端的Javascript代碼,交給Node.js來解釋執行,簡單的命令類似於:
#node helloworld.js

Node.js採用事件驅動、異步編程,爲網絡服務而設計

特點:
* 單線程事件模型,簡單高效
* 基於活躍的高性能V8引擎
* 社區活躍,組件豐富


var http = require("http");
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/plain'});
res.end('hello world\n');
}).listen(1337,'127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

上面的代碼搭建了一個簡單的http服務器,在本地監聽1337端口,對於任意的http請求,服務器都返回一個頭部狀態碼爲200、Content-Type'值爲text/plain'的”Hello World“文字響應。node.js本來就是一個http服務器,它是要與前端交互的,因此少不了兩個對象:請求(request)與響應(response),即本例子中的req和res,請求與響應顯然一種異步的東西,因爲我們不知道前端什麼時候發請求過來,響應也不能立即給前端,還要做日誌,讀寫數據庫等操作呢。因此對於javascript來說,這用回調函數來實現最好,那麼由誰來接受這個回調呢?一個服務器對象!從這個小例子中,我們可以看出幾點:

  • Node.js的網絡編程比較便利,提供的模塊(在這裏是http)開放了容易上手的API接口,短短几行代碼就可以構建服務器。
  • 體現了事件驅動、異步編程,在createServer函數的參數中指定了一個回調函數(採用Javascript的匿名函數實現),當有http請求發送過來時,Node.js就會調用該回調函數來處理請求並響應。當然,這個例子相對簡單,沒有太多的事件註冊,在以後的文章中讀者會看到更多的實際例子。



發佈了13 篇原創文章 · 獲贊 25 · 訪問量 82萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章