Node.js Web全棧開發實戰

Node.js Web全棧開發實戰

作者: 千鋒教育高教產品研發部
出版社: 清華大學
出版在: 2022-06-01
ISBN-13: 9787302595342
ISBN-10: 7302595348





內容描述


本書主要介紹了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.1Node.js簡介

1.1.1Node.js的發展歷程

1.1.2Node.js的特點

1.1.3為什麽要使用Node.js

1.2Node.js運行環境安裝

1.2.1在Windows上安裝Node

1.2.2在Linux上安裝Node 

1.2.3在macOS上安裝Node

1.3NPM依賴管理工具

1.3.1NPM簡介

1.3.2NPM的使用

第2章Node.js編程基礎

2.1Node.js快速入門

2.1.1Node.js基礎

2.1.2創建第一個Node應用

2.2模塊化開發

2.2.1模塊化的概念

2.2.2CommonJS規範

2.2.3Node.js中的模塊化

2.2.4Node.js系統模塊

2.2.5第三方模塊

第3章異步I/O

3.1什麽是異步I/O

3.1.1為什麽要使用異步I/O

3.1.2異步I/O與非阻塞I/O

3.2Node.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.2process.nextTick()函數

第4章Stream

4.1Stream的概念

4.1.1Stream簡介

4.1.2Stream實現的過程

4.1.3Stream應用場景

4.2使用Stream操作文件

4.2.1Node.js讀寫文件

4.2.2使用Stream讀寫文件

4.2.3Stream對性能的影響

4.3readline逐行讀取

4.4Buffer二進制流

4.4.1什麽是二進制流

4.4.2使用Buffer提升性能

第5章Node.js Web服務器開發

5.1使用Node.js搭建Web服務器

5.1.1http模塊

5.1.2事件驅動編程

5.1.3路由

5.1.4靜態資源服務

5.2請求與響應對象

5.2.1URL的組成部分

5.2.2HTTP請求方法

5.2.3請求報頭

5.2.4響應報頭

5.2.5請求體

5.2.6參數

5.2.7請求對象

5.2.8響應對象

第6章Express框架

6.1Express框架簡介

6.2Express框架安裝與配置

6.2.1安裝Express

6.2.2Express目錄結構

6.2.3Express的路由管理

6.2.4Express的視圖管理

6.3Express中間件

6.3.1中間件的概念

6.3.2Express中間件的使用

6.3.3自定義Express中間件

6.3.4常用的中間件

6.4Express中的MVC

6.4.1MVC概述

6.4.2模型

6.4.3視圖模型

6.4.4控制器

第7章靜態資源

7.1網站中的靜態資源

7.1.1什麽是靜態資源

7.1.2靜態資源對性能的影響

7.2Web應用中的靜態資源

7.2.1靜態映射

7.2.2視圖中的靜態資源

7.2.3CSS中的靜態資源

7.3搭建靜態資源服務器

7.3.1什麽是靜態資源服務器

7.3.2使用Node搭建靜態資源服務器

第8章Handlebars

8.1模板引擎簡介

8.1.1什麽是模板引擎

8.1.2傳統JavaScript模板

8.1.3如何選擇模板引擎

8.2Handlebars模板引擎

8.2.1Handlebars簡介

8.2.2Handlebars的安裝

8.2.3Handlebars的特性

8.3Handlebars的使用

8.3.1註釋

8.3.2塊級表達式

8.3.3服務器端模板

8.3.4視圖和佈局

8.3.5在Express中使用佈局

8.3.6客戶端Handlebars

第9章MongoDB數據庫

9.1MongoDB數據庫簡介

9.1.1什麽是數據庫

9.1.2數據庫的優點

9.1.3MongoDB數據庫重要概念

9.2MongoDB數據庫環境搭建

9.2.1MongoDB數據庫的下載與安裝

9.2.2MongoDB Compass可視化工具

9.2.3啟動MongoDB服務

9.3mongoose模塊

9.3.1mongoose模塊簡介

9.3.2Schema模式對象

9.3.3Model模型對象

9.3.4Document文檔對象

9.4MongoDB模塊

9.4.1連接數據庫

9.4.2創建集合

9.4.3數據庫操作

第10章Ajax異步請求

10.1Ajax基礎

10.1.1傳統網站中存在的問題

10.1.2Ajax概述

10.1.3Ajax的使用場景

10.1.4Ajax的優點

10.1.5Ajax的缺點

10.2Ajax的工作原理

10.2.1Ajax運行原理

10.2.2XMLHttpRequest對象

10.2.3XMLHttpRequest對象的常用方法

10.3Ajax的實現步驟

10.3.1創建XMLHttpRequest對象

10.3.2設置請求方式

10.3.3調用回調函數

10.3.4發送HTTP請求

10.3.5Ajax的緩存問題

10.4瀏覽器同源策略

10.4.1什麽是同源策略

10.4.2同源策略的限制

10.4.3同源策略的解決方案

10.5RESTful風格API

10.5.1RESTful API 概述

10.5.2為什麽要使用RESTful結構

10.5.3RESTful API的實現

第11章會話跟蹤

11.1會話跟蹤概述

11.1.1HTTP請求的特點

11.1.2什麽是會話跟蹤

11.1.3會話跟蹤的用途

11.2Express中的會話跟蹤

11.2.1Express中的Cookie

11.2.2Express中的Session

第12章Node.js實現網絡爬蟲

12.1網絡爬蟲概述

12.1.1什麽是網絡爬蟲

12.1.2網絡爬蟲的實現原理

12.1.3Node.js實現網絡爬蟲的優勢

12.2基於Node實現的爬蟲程序

12.2.1安裝依賴包

12.2.2實現抓取數據

12.2.3實現爬蟲的方法

第13章網絡編程

13.1Node構建TCP服務

13.1.1TCP

13.1.2構建TCP服務器

13.2Node構建UDP服務

13.2.1UDP協議

13.2.2創建UDP套接字

13.2.3創建UDP服務器和客戶端

13.3Node構建HTTP服務

13.3.1初識HTTP協議

13.3.2Node中的http模塊

13.4Node構建WebSocket服務

13.4.1什麽是WebSocket

13.4.2WebSocket實例的屬性與方法

13.4.3構建WebSocket服務

第14章項目實戰: Express開發投票管理系統

14.1項目概述

14.1.1開發環境

14.1.2項目結構

14.2數據庫設計

14.2.1連接數據庫

14.2.2創建Schema文檔對象

14.2.3封裝CRUD函數

14.2.4封裝文件上傳業務邏輯

14.3配置前端開發環境

14.3.1靜態文件管理

14.3.2安裝依賴

14.4後台功能模塊開發

14.4.1系統用戶登錄

14.4.2系統用戶管理

14.4.3候選對象管理

14.4.4投票主題管理

14.4.5投票環節管理

14.4.6投票統計管理

14.5網站前臺佈局




相關書籍

Basics of Web Design: HTML5 and CSS3 (Paperback)

作者 Terry Morris Terry Felke-Morris

2022-06-01

Learning CSS3 Animations and Transitions: A Hands-on Guide to Animating in CSS3 with Transforms, Transitions, Keyframes, and JavaScript (Paperback)

作者 Alexis Goldstein

2022-06-01

PHP 7 Solutions: Dynamic Web Design Made Easy, 4/e

作者 Powers David

2022-06-01