初窺Nodejs

1、Node.js 到底是什麼?

  1. Node .js是一個服務器端 JavaScript 解釋器;
  2. 是一個構建在Chrome JavaScript運行環境的平臺,這是很重要的一點,node.js並非一門語言,而是一個平臺;
  3. 致力於使構建速度快、穩定的網絡程序更簡單;
  4. 具備事件驅動和非阻塞I/O的特點,使之輕量級而且高效率;
  5. 很是適合在分佈式設備運行數據密集型實時應用程序。

 

  既然想了解Node.js,那麼就用它向世界打個招呼吧!node

  1.在nodejs文件加下面建立一個js文件,例如:hello.jsweb

  2.hello.js文件裏的內容以下:瀏覽器

var http=require('http');//引入http module
http.createServer(function(request,response){//建立一個web server
  //回調函數,這樣建立server方法就不會阻塞了
  response.writeHead(200,{'contentType':'text/plain'});
  response.end('Hello World!\n');
}).listen(8124);
console.log('Server running at http://127.0.0.1:8124/');

  3.調出cmd.exe,使用  cd \.....\nodejs   到達nodejs文件目錄,再輸入 node hello.js 運行服務器

  4.打開瀏覽器,在地址欄輸入你設置的端口號  http://127.0.0.1:8124/,刷新,顯示「Hello World!」網絡

 

2、Node.js的優勢

  nodejs做爲一個新興的後臺語言,有不少吸引人的地方:
  RESTful API
  單線程
  Node.js能夠在不新增額外線程的狀況下,依然能夠對任務進行並行處理 —— Node.js是單線程的。它經過事件輪詢(event loop)來實現並行操做,對此,咱們應該要充分利用這一點 —— 儘量的避免阻塞操做,取而代之,多使用非阻塞操做。
  非阻塞IO
  V8虛擬機
  事件驅動

3、Node 旨在解決什麼問題?

  Node 公開宣稱的目標是 「旨在提供一種簡單的構建可伸縮網絡程序的方法」。當前的服務器程序有什麼問題?咱們來作個數學題。在 Java™ 和 PHP 這類語言中,每一個鏈接都會生成一個新線程,每一個新線程可能須要 2 MB 的配套內存。在一個擁有 8 GB RAM 的系統上,理論上最大的併發鏈接數量是 4,000 個用戶。隨着您的客戶羣的增加,若是但願您的 Web 應用程序支持更多用戶,那麼,您必須添加更多服務器。固然,這會增長服務器成本、流量成本和人工成本等成本。除這些成本上升外,還有一個潛在技術問題,即用戶可能針對每一個請求使用不一樣的服務器,所以,任何共享資源都必須在全部服務器之間共享。鑑於上述全部緣由,整個 Web 應用程序架構(包括流量、處理器速度和內存速度)中的瓶頸是:服務器可以處理的併發鏈接的最大數量。架構

  Node 解決這個問題的方法是:更改鏈接到服務器的方式。每一個鏈接發射一個在 Node 引擎的進程中運行的事件,而不是爲每一個鏈接生成一個新的 OS 線程(併爲其分配一些配套內存)。Node 聲稱它毫不會死鎖,由於它根本不容許使用鎖,它不會直接阻塞 I/O 調用。Node 還宣稱,運行它的服務器能支持數萬個併發鏈接。併發

  如今您有了一個能處理數萬個併發鏈接的程序,那麼您能經過 Node 實際構建什麼呢?若是您有一個 Web 應用程序須要處理這麼多鏈接,那將是一件很 「恐怖」 的事!那是一種 「若是您有這個問題,那麼它根本不是問題」 的問題。在回答上面的問題以前,咱們先看看 Node 的工做原理以及它的設計運行方式。框架

 

4、Node.js的應用方向

  在幾年的時間裏,Node.JS逐漸發展成一個成熟的開發平臺,吸引了許多開發者。有許多大型高流量網站都採用Node.JS進行開發,此外,開發人員還可使用它來開發一些快速移動 Web框架。
  除了Web應用外,NodeJS也被應用在許多方面,本文盤點了NodeJS在其它方面所開發的十大使人神奇的項目,這些項目涉及到應用程序監控、媒體流、遠程控制、桌面和移動應用等等。
相關文章
相關標籤/搜索