天天看點

Node.js入門以及第一個helloworld程式.

1、概念:簡單的說 Node.js 就是運作在服務端的 JavaScript。學之前需要明白Node.js是無法挑戰jsp、php或者asp這種老牌網站的地位的,是永遠不會出現在證券、金融這種領域的。node.js的出現,就像是思維的極限反轉帶來的性能極緻,它就像是一個玩具一樣,如果把傳統的jsp必做戰鬥機的話,那麼node.js就是一個無人機!

2、Node.js的三大特性

  • 單線程
  • 事件驅動
  • 非阻塞I/O

 Node.js的這三個特性,缺一不可,正是這些特性導緻他的性能高效。當别人考慮如何進行伺服器叢集的時候,Node.js反其道而行,采用單線程來解決。合理的避免了I/O的等待時間。

 Node.js基于Google的V8引擎,V8引擎執行Javascript的速度非常快,性能非常好。因為他是單線程、非阻塞I/O,是以避免了I/O通路資料庫時線程的等待時間,利用這個等待時間異步處理其他事件,同時減少了線程建立和銷毀的開銷,同時,它又是事件驅動的,是以每次的異步回調事件,都又會重新進行排列排程,Node.js的底層語言C++,幾乎一半以上的語言都是在進行事件排程和排列的,是以,其實Node.js 的這三個特性,說的是一個意思,環環相扣,缺一不可。Node.js無時不刻不是在百分之百工作的,就好比,你請了10個人人工作,但是這10個人慢慢悠悠的工作,倒不如請一個人拼命的幹活。

Node.js入門以及第一個helloworld程式.

 但是Node.js也有他的缺點,因為他是單線程的,是以如果某個使用者把這個線程弄崩潰了,那在這個線程的其他使用者也都無法工作。

 傳統的伺服器需要為每個連接配接建立一個線程,一個線程大約花費2MB的記憶體,是以一個8GB的記憶體大約可以連接配接4000個使用者。而Node.js來說,一個8GB的記憶體大約可以連接配接40000個使用者。

當應用程式需要處理大量并發的I/O,而在用戶端發出響應之前,應用程式内部并不需要進行非常複雜的處理的時候,Node.js非常合适。Node.js也非常适合與web Socket配合,開發長連接配接的實時互動應用程式。

  --使用者表單收集

  --考試系統

  --聊天室

  --圖文直播

  Node.js沒有根目錄的概念,因為他根本沒有任何的Web容器!甚至讓Node.js提供一個靜态服務都非常難!

 3、第一個HelloWorld程式

Node.js入門以及第一個helloworld程式.
Node.js入門以及第一個helloworld程式.
Node.js入門以及第一個helloworld程式.
Node.js入門以及第一個helloworld程式.