酒濃碼濃 - node.js

node.js

2009年,Ryan正式推出了

基於JavaScript語言,V8引擎的開源Web服務器項目——Node.js

 

爲什麼要用Node?

很多開發都迷惑,爲什麼要用Node?在實際項目中貌似也就是啓個服務,做個前後分離,還做了什麼呢?

談談個人看法:

node雖是服務端,但友好的JS語法讓前端開發者學習成本比較低,也是在前端火起來的原因之一吧。

node像瀏覽器一樣提供了執行環境可以玩耍。服務端語言都有讀寫文件的能力,一些API會建立你的後端語言的能力,也對整體架構的建設有了概念。

如果你用node做中間層,他就像個宿主環境,就像個容器包裹你的項目。你可以在中間層裏去進行路由的操作,服務端渲染,ip的抓取,掌控客戶端頁面進入權限,等等細節的功能,在這個空間做你想做的事與客戶端分離讓你的項目更加清晰。配合運維做基礎建設生產環境也可以快速定位node服務報錯。

如果你的網站有很多媒介音視頻圖片的使用,node對流式傳輸也體現出了性能優勢。

 

Node優勢?

1. JavaScript 是異步(非阻塞式)I/O ( 高併發 ) 事件驅動,使Node輕量又高效。

I / O(Input/Output)通常是指計算機線程進行磁盤讀寫或者網絡通信時的一種行爲。

同步式:多個線程完成多個任務。

計算機執行命令,調度線程操作,操作完成後命令下一 線程操作。

異步式:一個線程完成多個任務。

計算機執行命令,調度線程操作,命令下達後命令下一 線程操作。

(當I/O操作完成後,會通過事件(event ) 通知I/O線程,而線程在接收到通知後,會處理響應事件)

2. JavaScript 可以使用ECMAScript等,在開發上提升了效率  。

3. Node.js 的包管理器 npm,世界上最大的開放源代碼的生態系統。

4. Node.js 可以解析JS代碼(沒有瀏覽器安全級別的限制)提供很多系統級別的API,如:文件讀寫,進程管理,網絡通信等。

5. Node.js 可以編寫獨立的服務端應用,也可以向客戶端提供Web內容,無需藉助任何Web服務器(apache)可以去連接文件系統,還能操作數據庫。

Node.js 適合開發中間服務器,可伸縮的網路應用,數據寫入讀取的應用比較好

 

Node劣勢?

Node.js 不適合CPU密集型的應用,各種計算的就不太適合

 

安裝Node

LTS指的是long time support 也就是長期支持版本,推薦大家安裝

Current是現在最新的版本。

一般來說,偶數位爲穩定版本,奇數位爲非穩定版本

這塊就自行去官網node下載安裝吧,就不多解釋了。

 

包管理工具和模塊

npm的使用

nodeJs使用CommonJs規範,,不會有命名衝突、依賴關係等等的問題。

按照規範來定義模塊,暴露接口,引用模塊,使用模塊

 

模式

命令行模式和Node交互模式(REPL模式)

在命令行模式下,可以執行node進入Node交互式環境。

REPL模式可以執行JavaScript代碼。

chrome瀏覽器的V8引擎console控制檯裏可以運行js代碼,其實這裏就是node的V8引擎解析js代碼的情況。

瀏覽器有BOM和DOM對象,在node裏是沒有的,也就是沒有window等相關的對象。

同樣在node端有global,process等全局對象,瀏覽器段卻沒有

在命令行模式下,可以執行node 1.js 啓動服務

 

搭建第一個node服務器

在項目文件夾中的1.js文件中寫如下代碼

命令行啓動服務,瀏覽器輸入地址,OK啓動成功

 

其他模塊:

fs: node之fs

stream: node之stream

http: node之http

url: node之url

path: node之path

crypto: node之crypto

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章