Node.js
或者Node
是一個開源跨平臺的運行環境,用來在瀏覽器外執行JavaScript
代碼。咱們經常使用Node
來建立後端程序,更常說的是API
,也就是應用程序接口(Application Programming Interface
)。這些用來支撐客戶端的服務,好比網絡應用,它們在瀏覽器中運行。或者手機應用,它們在手機中運行。這些客戶端簡單來講就是管理用戶所見和所作。它們只是外殼,它們須要與一些在服務器或雲端的服務對話,去保存數據,發送郵件,推送消息,流轉工做等。前端
Node
是建立高可擴展性數據密集型和實時的後端服務,去支持客戶端的很是好的工具。後端
首先Node
很容易上手,能夠很好的適應原型和敏捷的開發工做,它也支持開發超速和高擴展性的服務。在不少的大公司好比PaPal、優步,沃爾瑪等等都有使用。瀏覽器
另外Node
是由JavaScript
編寫的,因此若是你是屬性JavaScript
的前端開發者,那麼徹底能夠作到無縫切換,複用所學的JavaScript
知識。無需學習一門新語言,作到同時在先後端使用JavaScript
。使用相同的命名規範、工具編寫Node
。bash
最後就是Node
擁有強大的生態和衆多的開源庫,這意味着你想在應用添加一些特性或者功能塊。直接就可使用不少免費並開源的庫,而不須要從頭開始建立這些代碼塊,轉而關注Node
的核心內容。服務器
在Node
以前,JavaScript
只能運行在瀏覽器裏,每一個瀏覽器都有咱們所說的JavaScript
引擎,它講JavaScript
代碼轉換爲機器才懂的機器碼。例如微軟的Edge
瀏覽器使用的引擎是Chakra
,Firefox
的引擎是SpiderMonkey
,Chrome
的引擎是v8
。由於各自瀏覽器的引擎不一樣,JavaScript
的行爲可能在瀏覽器之間會有不一樣。這也是爲何咱們須要在不一樣的瀏覽器進行測試。瀏覽器提供了一個JavaScript
代碼的運行環境。好比在瀏覽器是有window
或document
對象的,這些對象容許咱們操做代碼的運行環境。在此以前瀏覽器是運行JavaScript
的惟一途徑,直到Node
的出現,實現了在瀏覽器外運行JavaScript
的方式。同時包含一些用來提供環境的對象,固然這些對象與在瀏覽器中的對象不一樣。網絡
在Node
裏是沒有document
對象,但它提供的環境對象有着其它的能力。好比能夠操做文件系統,或者列出對給定端口的請求,而這些是瀏覽器作不到的。ide
fs.readFile();
http.createServer();
複製代碼
總結起來講,Node
是一個包含JavaScript
引擎的程序,並提供給咱們一些瀏覽器沒有的新特性,咱們能夠處理文件系統或者網絡請求等。工具