1. 程式人生 > >Node.js入門以及第一個helloworld程序

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

目錄 rip 工作 直播 需要 減少 web容器 用戶 長連接

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也有他的缺點,因為他是單線程的,所以如果某個用戶把這個線程弄崩潰了,那在這個線程的其他用戶也都無法工作。 傳統的服務器需要為每個連接創建一個線程,一個線程大約花費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程序