Node.js躬行記(21)——花10分鐘入門Node.js

  Node.js 不是一門語言,而是一個基於 V8 引擎的運行時環境,下圖是一張架構圖。

  

  由圖可知,Node.js 底層除了 JavaScript 代碼之外,還有大量的 C/C++ 代碼。

  常說 Node.js 是單線程的,但這個單線程是指處理 JavaScript 的主線程是單的,像 I/O 任務都是多線程處理的。

一、準備

  要開發 Node.js 應用,首先需要下載安裝 Node.js,點擊下一步下一步就可完成。

  

  值得一提的是,在官網中,還配套了一份 50 多篇的入門教程,每篇都不長,蠻通俗易懂的,可以閱讀一下。

  然後需要一個編輯器,IDE編輯器(例如 VS CodeWebStream),或者是帶語言着色的文本編輯器(例如 CotEditor)都可以,看個人喜好。

  寫完一個簡單的腳本文件後,觸發命令 node xx.js 就能運行了。

  Node.js 在國內有個著名論壇 CNode,其中有許多優秀的 Node.js 資料可供參考。

  目前的前端開發肯定會涉及到工程化,所以或多或少需要 Node.js 環境,用 npm 命令下載或管理包。

  但是如果要開發實際應用,那麼就得需要了解 Node.js 的模塊。

二、模塊

  Node.js 賦予了 JavaScript 很多沒有的能力,例如讀寫文件、發起跨域的網絡請求、連接數據庫等。

  前端邊界因 Node.js 變得很廣,一個前端也可以做後端的工作,俗稱全棧工程師。

  在閱讀 Node.js 的官方文檔時,就會發現內容很詳盡,很多細節都會講到。

  只是沒有上下文語境,缺乏代入感,有時候文檔讀起來就比較晦澀。

  進入到官方文檔後,在左邊的菜單欄中有 60 多個選項,直接讀的話,會讓人睡着。

  一般的話,可以配合其他教程,然後將官方文檔作爲參考資料,當遇到不太明白的地方,再有針對性的瀏覽,效果會更佳。

  本文推薦幾個常用的模塊,包括 fs文件模塊http協議模塊path路徑模塊global全局變量module模塊化

  日常項目開發中肯定會涉及到上述一個或多個模塊。

三、框架

  真正項目開發時,很少需要從零開始,選擇成熟的框架主要就是爲了提升工作效率。

  市面上的框架有很多,例如 ExpressKOAegg.jsNext.jsNuxt.js 等,這些框架都有對應的中文文檔。

  以我公司爲例,選擇的是 KOA 框架,這是一個短小精悍的框架,源碼只有 4 個文件。

  雖然簡單,但擴展性很高,可以通過中間件的形式加載進來,例如路由、日誌、權限驗證、JWT認證等。

  在將開發環境搭建好後,還得佈置單元測試,框架都能集成單元測試,只要簡單的配置即可。

  在 Node.js 中,有很多單測框架可供選擇,例如 MochaJest 等,斷言庫包括 Chaiassert 斷言模塊等。

  接口測試有 SuperTest,測試替身庫有 Sinon,可以模擬數據庫讀記錄。

四、數據庫

  開發 Node.js 的項目,離不開數據庫的處理。常用的數據庫有 MySQLMongoDB

  MySQL 官方給出的可視化操作工具是 Workbench,MongoDB 官方給出的可視化操作工具是 Compass

  直接用 Node.js 作爲項目持久層的並不多,很多時候都是作爲數據中間層的角色存在。

  因此,對數據庫的處理並不是很複雜,常用的也就是增刪改查,其中刪除很少是物理刪除,基本都是改個狀態。

  以 MySQL 爲例,常用的就是下面三類 SQL 語句。

select * from table where id = 1;
update table set name = 'strick' where id = 1;
insert into table(name) values ('strick');

  當然,在日常開發中不需要手寫拼接 SQL 語句,既爲了安全,也是爲了可維護。

  所以就需要常用的 ORM(對象關係映射),例如 MySQL 的 Sequelize,MongoDB 的 mongoose

  至此,開發一個常規 Node.js 應用所需的知識儲備,已全部涉及到,接下來就是熟能生巧的過程了。

 

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