nodejs不是js,而是一個讓js運行在服務端的平臺。js(全稱JavaScript)是一種編程語言,而Node是一個基于Chrome V8引擎的JavaScript運行環境,一種讓JavaScript運行在服務端的開發平臺。
本教程操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。
nodejs不是js,而是一個讓js運行在服務端的平臺。
Node.js發布于2009年5月,由Ryan Dahl開發,是一個基于Chrome V8引擎的JavaScript運行環境,使用了一個事件驅動、非阻塞式I/O模型, 讓JavaScript 運行在服務端的開發平臺,它讓JavaScript成為與PHP、Python、Perl、Ruby等服務端語言平起平坐的腳本語言。
JavaScript基于Node.js技術可以進行服務器端編程。
Node.js的特點
非阻塞異步io
例如,當在訪問數據庫取得數據的時候,需要一段時間。在傳統的單線程處理機制中,在執行了訪問數據庫代碼之后,整個線程都將暫停下來,等待數據庫返回結果,才能執行后面的代碼。也就是說,I/O阻塞了代碼的執行,極大地降低了程序的執行效率。
由于 Node.js 中采用了非阻塞型I/O機制,因此在執行了訪問數據庫的代碼之后,將立即轉而執行其后面的代碼,把數據庫返回結果的處理代碼放在回調函數中,從而提高了程序的執行效率。
當某個I/O執行完畢時,將以事件的形式通知執行I/O操作的線程,線程執行這個事件的回調函數。為了處理異步I/O,線程必須有事件循環,不斷的檢查有沒有未處理的事件,依次予以處理。
阻塞模式下,一個線程只能處理一項任務,要想提高吞吐量必須通過多線程。而非阻塞模式下,一個線程永遠在執行計算操作,這個線程的CPU核心利用率永遠是100%。所以,這是一種特別有哲理的解決方案:與其人多,但是好多人閑著;還不如一個人玩命,往死里干活兒。
單線程
在 Java、PHP 或者 .net 等服務器端語言中,會為每一個客戶端連接創建一個新的線程。而每個線程需要耗費大約2MB內存。也就是說,理論上,一個8GB內存的服務器可以同時連接的最大用戶數為4000個左右。要讓Web應用程序支持