Node.js入門教程合集

Node.js是一個特殊的後端服務框架,一個用前端語言寫後端功能的框架。無論你是做前端還是後端的程序員,都應該接觸Node.js,因爲它會給你技術棧上的互補,甚至啓迪你的思維方式。

 

介紹

Node.js本質上是使用Google的V8引擎製作出來的服務框架。V8本身是Google爲了解決Chrome瀏覽器的性能問題而製作的前端引擎(開源)。本身依託於瀏覽器引擎,這也是爲什麼Node.js使用的是前端的JavaScript語言編程。

在Node.js中最主要的特性,即事件驅動與非阻塞I/O都與其底層的特殊實現有關。

在Node.js的底層有一個事件輪循器(Event Loop)。每當有事件註冊時,會先將事件放置到事件隊列(Event Queue),並通過事件輪循器順序執行事件隊列。當輪循到一個事件時,事件輪循器會爲其分配一個工作線程(Worker Threads)執行該事件,事件完成後通過執行回調(Callback)返回到事件列表並通過V8引擎傳遞給應用(Application)。

其詳細步驟爲:

1、應用層發出請求給V8

2、V8通過Node.js的中間層(Bindings)傳遞給底層(Libuv)

3、在Libuv層中,請求會按順序放置在事件隊列(Event Queue)

4、事件輪詢器(Event Loop)依次爲事件隊列中的事件分配工作線程(Worker Threads)

5、工作線程完成事件,並通過執行回調(Callback)返回事件列表

6、事件的執行結果通過中間層及V8返回給應用

在應用層中,發送請求後會繼續執行應用層後續代碼,而不需要等待事件的完成,所以是異步處理。事件處理完成後通過回調返回到應用。整個過程只由一個主線程完成,因此不存在死鎖、等待的情況。

這就是Node.js的事件驅動與I/O非阻塞的實現原理。

 

目錄合集

Node.js入門教程 第一篇 (概念原理及環境配置)

Node.js入門教程 第二篇 (HelloWorld及事件分發)

Node.js入門教程 第三篇 (模塊、路由)

Node.js入門教程 第四篇 (流及文件操作)

Node.js入門教程 第五篇 (Express框架)

Node.js入門教程 第六篇 (連接使用MySql)

 

IDE環境

建議使用VSCode開發,內部有Node.js插件可使用。如何使用VSCode開發,可以點擊這裏學習。

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