內容大鋼
本書主要介紹了Node.js在Web全棧開發領域的應用實踐,分別從Node.js基礎語法、模塊化、伺服器搭建、Express框架等方面由淺入深地進行講解。在企業級應用開發方面也有著重講解,例如,MongoDB資料庫的操作、Ajax非同步請求與同源策略、Node.js的會話跟蹤技術的應用、Node.js爬蟲程序的實現等。
在企業開發中,Node.js的應用越來越廣泛。像Yahoo、Microsoft等公司的很多應用都已經遷移到Node.js了,國內的阿里巴巴、網易、騰訊、新浪、百度等公司的很多線上產品也紛紛改用Node.js開發,並取得了很好的效果。
本書從基礎入門到項目實戰,為讀者逐步揭開Node.js的神秘面紗,使讀者更好地理解、學習Node.js,並能夠使用Node.js開發出優秀的Web應用。無論你是一個前端開發的新手,還是一個編程高手,這本書都值得去認真閱讀。
目錄
第1章 初識Node.js
1.1 Node.js簡介
1.1.1 Node.js的發展歷程
1.1.2 Node.js的特點
1.1.3 為什麼要使用Node.js
1.2 Node.js運行環境安裝
1.2.1 在Windows上安裝Node
1.2.2 在Linux上安裝Node
1.2.3 在macOS上安裝Node
1.3 NPM依賴管理工具
1.3.1 NPM簡介
1.3.2 NPM的使用
第2章 Node.js編程基礎
2.1 Node.js快速入門
2.1.1 Node.js基礎
2.1.2 創建第一個Node應用
2.2 模塊化開發
2.2.1 模塊化的概念
2.2.2 CommonJS規範
2.2.3 Node.js中的模塊化
2.2.4 Node.js系統模塊
2.2.5 第三方模塊
第3章 非同步I/O
3.1 什麼是非同步I/O
3.1.1 為什麼要使用非同步I/O
3.1.2 非同步I/O與非阻塞I/O
3.2 Node.js的非同步I/O
3.2.1 事件循環
3.2.2 觀察者模式
3.2.3 請求對象
3.2.4 執行回調
3.3 非I/O的非同步API
3.3.1 定時器
3.3.2 process.next Tick()函數
第4章 Stream
4.1 Stream的概念
4.1.1 Stream簡介
4.1.2 Stream實現的過程
4.1.3 Stream應用場景
4.2 使用Stream操作文件
4.2.1 Node.js讀寫文件
4.2.2 使用Stream讀寫文件
4.2.3 Stream對性能的影響
4.3 readline逐行讀取
4.4 Buffer二進位流
4.4.1 什麼是二進位流
4.4.2 使用Buffer提升性能
第5章 Node.js Web伺服器開發
5.1 使用Node.js搭建Web伺服器
5.1.1 http模塊
5.1.2 事件驅動編程
5.1.3 路由
5.1.4 靜態資源服務
5.2 請求與響應對象
5.2.1 URL的組成部分
5.2.2 HTTP請求方法
5.2.3 請求報頭
5.2.4 響應報頭
5.2.5 請求體
5.2.6 參數
5.2.7 請求對象
5.2.8 響應對象
第6章 Express框架
6.1 Express框架簡介
6.2 Express框架安裝與配置
6.2.1 安裝Express
6.2.2 Express目錄結構
6.2.3 Express的路由管理
6.2.4 Express的視圖管理
6.3 Express中間件
6.3.1 中間件的概念
6.3.2 Express中間件的使用
6.3.3 自定義Express中間件
6.3.4 常用的中間件
6.4 Express中的MVC
6.4.1 MVC概述
6.4.2 模型
6.4.3 視圖模型
6.4.4 控制器
第7章 靜態資源
7.1 網站中的靜態資源
7.1.1 什麼是靜態資源
7.1.2 靜態資源對性能的影響
7.2 Web應用中的靜態資源
7.2.1 靜態映射
7.2.2 視圖中的靜態資源
7.2.3 CSS中的靜態資源
7.3 搭建靜態資源伺服器
7.3.1 什麼是靜態資源伺服器
7.3.2 使用Node搭建靜態資源伺服器
第8章 Handlebars
8.1 模板引擎簡介
8.1.1 什麼是模板引擎
8.1.2 傳統JavaScript模板
8.1.3 如何選擇模板引擎
8.2 Handlebars模板引擎
8.2.1 Handlebars簡介
8.2.2 Handlebars的安裝
8.2.3 Handlebars的特性
8.3 Handlebars的使用
8.3.1 註釋
8.3.2 塊級表達式
8.3.3 伺服器端模板
8.3.4 視圖和布局
8.3.5 在Express中使用布局
8.3.6 客戶端Handlebars
第9章 MongoDB資料庫
9.1 MongoDB資料庫簡介
9.1.1 什麼是資料庫
9.1.2 資料庫的優點
9.1.3 MongoDB資料庫重要概念
9.2 MongoDB資料庫環境搭建
9.2.1 MongoDB資料庫的下載與安裝
9.2.2 MongoDB Compass可視化工具
9.2.3 啟動MongoDB服務
9.3 mongoose模塊
9.3.1 mongoose模塊簡介
9.3.2 Schema模式對象
9.3.3 Model模型對象
9.3.4 Document文檔對象
9.4 MongoDB模塊
9.4.1 連接資料庫
9.4.2 創建集合
9.4.3 資料庫操作
第10章 Ajax非同步請求
10.1 Ajax基礎
10.1.1 傳統網站中存在的問題
10.1.2 Ajax概述
10.1.3 Ajax的使用場景
10.1.4 Ajax的優點
10.1.5 Ajax的缺點
10.2 Ajax的工作原理
10.2.1 Ajax運行原理
10.2.2 XMLHttpRequest對象
10.2.3 XMLHttpRequest對象的常用方法
10.3 Ajax的實現步驟
10.3.1 創建XMLHttpRequest對象
10.3.2 設置請求方式
10.3.3 調用回調函數
10.3.4 發送HTTP請求
10.3.5 Ajax的緩存問題
10.4 瀏覽器同源策略
10.4.1 什麼是同源策略
10.4.2 同源策略的限制
10.4.3 同源策略的解決方案
10.5 RESTful風格API
10.5.1 RESTful API概述
10.5.2 為什麼要使用RESTful結構
10.5.3 RESTful API的實現
第11章 會話跟蹤
11.1 會話跟蹤概述
11.1.1 HTTP請求的特點
11.1.2 什麼是會話跟蹤
11.1.3 會話跟蹤的用途
11.2 Express中的會話跟蹤
11.2.1 Express中的Cookie
11.2.2 Express中的Session
第12章 Node.js實現網路爬蟲
12.1 網路爬蟲概述
12.1.1 什麼是網路爬蟲
12.1.2 網路爬蟲的實現原理
12.1.3 Node.js實現網路爬蟲的優勢
12.2 基於Node實現的爬蟲程序
12.2.1 安裝依賴包
12.2.2 實現抓取數據
12.2.3 實現爬蟲的方法
第13章 網路編程
13.1 Node構建TCP服務
13.1.1 TCP
13.1.2 構建TCP伺服器
13.2 Node構建UDP服務
13.2.1 UDP協議
13.2.2 創建UDP套接字
13.2.3 創建UDP伺服器和客戶端
13.3 Node構建HTTP服務
13.3.1 初識HTTP協議
13.3.2 Node中的http模塊
13.4 Node構建WebSocket服務
13.4.1 什麼是WebSocket
13.4.2 WebSocket實例的屬性與方法
13.4.3 構建WebSocket服務
第14章 項目實戰:Express開發投票管理系統
14.1 項目概述