Node.js 應用開發

Node.js 應用開發

作者: 唐小燕 劉洪武
出版社: 人民郵電
出版在: 2021-11-01
ISBN-13: 9787115569639
ISBN-10: 7115569630
裝訂格式: 平裝
總頁數: 296 頁





內容描述


Node.js是一個基於Chrome V8引擎的JavaScript運行環境,用來編寫服務器端程序。Node.js是新興的開發工具,也是目前發展較快的開發工具之一。近幾年來,隨著Node.js的發展,越來越多的開發人員選擇用它構建Web應用。
本書較為系統地介紹了目前Node.js應用開發中涉及的基礎知識和核心技術,並通過案例介紹了基於Express和Koa框架的項目開發。本書著重實際應用,案例及實訓項目的實用性和可操作性強,能夠幫助讀者學以致用。全書共分10章,主要包括Node.js認知、模塊機制、Node.js異步編程、Buffer緩存區和文件系統、構建Web應用、Express框架、Express模板引擎、數據庫應用開發、Koa框架、項目優化及線上部署等Web應用開發中最為重要的內容。
本書可作為本科和高職院校電腦相關專業的教材,也可作為電腦培訓用教材,還可作為電腦相關技術愛好者的自學參考書。


目錄大綱


目錄
第 1章
Node. js認知 1
1.1 Node. js簡介 1
1.1.1 什麼是Node. js 1
1.1.2 Node. js發展歷史 1
1.1.3 Node. js特點及應用場景 2
1.1.4 Node. js與JavaScript的區別 3
1.2 Node. js環境安裝 3
1.2.1 下載Node. js 3
1.2.2 安裝Node. js 4
1.2.3 安裝Node. js程序編輯環境 5
1.3 第 一個Node. js程序 7
1.3.1 編寫Node. js程序 7
1.3.2 運行Node. js程序 8
1.4 Node. js控制台Console 12
1.4.1 Console常用方法 12
1.4.2 項目實訓——Console控制台的使用 16
1.5 本章小結 20
1.6 本章習題 20
第 2章
模塊機制 21
2.1 什麼是模塊 21
2.1.1 模塊的定義 21
2.1.2 模塊的優點 21
2.1.3 模塊化規範 22
2.1.4 項目實訓——模塊化輸出九九乘法表 27
2.2 Node. js模塊基礎 28
2.2.1 模塊的分類 28
2.2.2 自定義模塊 28
2.2.3 項目實訓——模塊化實現四則混合運算 30
2.3 包與NPM 31
2.3.1 包 31
2.3.2 NPM 33
2.3.3 自定義項目包 35
2.3.4 CNPM和YARN安裝與使用 37
2.3.5 項目實訓——模塊化顯示日期 39
2.4 本章小結 39
2.5 本章習題 40
第3章
Node. js異步編程 41
3.1 回調函數 41
3.1.1 阻塞 42
3.1.2 非阻塞 43
3.2 異步編程 45
3.2.1 事件發布/訂閱模式 45
3.2.2 Promise/Deferred模式 46
3.2.3 流程控制庫 51
3.2.4 項目實訓——顯示天氣預報數據 52
3.3 本章小結 55
3.4 本章習題 55
第4章
Buffer緩存區和文件系統 56
4.1 Buffer緩存區 56
4.1.1 Buffer簡介 56
4.1.2 常用的Buffer類API 58
4.1.3 Buffer與字符編碼 60
4.1.4 項目實訓——Buffer緩存區操作 61
4.2 fs文件基本操作 64
4.2.1 fs簡介 64
4.2.2 打開/關閉文件 65
4.2.3 讀取/寫入文件 68
4.2.4 刪除文件 70
4.2.5 讀取目錄 71
4.2.6 項目實訓——JSON文件數據操作 71
4.3 流 75
4.3.1 fs流簡介 75
4.3.2 創建流 77
4.3.3 管道流 79
4.3.4 鍊式流 80
4.3.5 項目實訓——XML文件轉JSON文件 81
4.4 本章小結 83
4.5 本章習題 83
第5章
構建Web應用 85
5.1 HTTP 85
5.1.1 HTTP原理 85
5.1.2 請求報文 87
5.1.3 響應報文 89
5.2 http模塊 92
5.2.1 http模塊介紹 92
5.2.2 HTTP服務端 93
5.2.3 HTTP客戶端 98
5.2.4 http. ServerRequest和http. request 100
5.2.5 項目實訓——前後端交互顯示省份信息 100
5.3 path模塊和url模塊 104
5.3.1 path模塊 104
5.3.2 url模塊 107
5.3.3 項目實訓——為前端提供數據接口 110
5.4 本章小結 115
5.5 本章習題 115
第6章
Express框架 116
6.1 Express簡介與安裝 116
6.1.1 Express簡介 116
6.1.2 Express安裝 116
6.1.3 項目實訓——搭建框架項目 118
6.2 路由配置 121
6.2.1 路由介紹 121
6.2.2 App級別路由 121
6.2.3 Router級別路由 127
6.3 中間件使用 129
6.3.1 自定義中間件 130
6.3.2 第三方中間件 130
6.3.3 內置中間件 133
6.3.4 錯誤中間件 135
6.3.5 項目實訓——中間件訪問靜態文件 136
6.4 請求與響應 139
6.4.1 請求對象 139
6.4.2 響應對象 144
6.5 cookie 148
6.5.1 cookie工作原理 148
6.5.2 cookie的設置與獲取 149
6.5.3 項目實訓——Cookie驗證登錄 151
6.6 session 157
6.6.1 session工作原理 157
6.6.2 session的安裝配置與設置獲取 158
6.7 Postman接口測試 160
6.7.1 軟件安裝 160
6.7.2 接口測試與導出接口集 163
6.8 本章小結 165
6.9 本章習題 165
第7章
Express模板引擎 167
7.1 pug模板引擎 167
7.1.1 pug模板簡介 167
7.1.2 pug模板文件的編譯 168
7.1.3 pug語法 169
7.2 ejs模板引擎 194
7.2.1 ejs標籤含義 194
7.2.2 ejs中的include 194
7.3 Express框架中集成模板引擎 195
7.3.1 pug模板在Express框架中的集成 196
7.3.2 ejs模板在Express框架中的集成 198
7.3.3 項目實訓——渲染商品信息 201
7.4 本章小結 208
7.5 本章習題 208
第8章
數據庫應用開發 209
8.1 連接MySQL數據庫 209
8.1.1 安裝MySQL 209
8.1.2 MySQL常用語句 218
8.1.3 連接MySQL數據庫 221
8.1.4 數據庫操作 222
8.1.5 項目實訓——學生信息管理 224
8.2 連接MongoDB數據庫 228
8.2.1 MongoDB安裝與配置 228
8.2.2 MongoDB基本操作 235
8.2.3 Mongoose數據庫操作 236
8.2.4 項目實訓——商品信息管理 238
8.3 綜合項目實訓——學生信息頁面管理 243
8.4 本章小結 253
8.5 本章習題 253
第9章
Koa框架 255
9.1 Koa框架簡介 255
9.1.1 Koa與Express的區別 255
9.1.2 Koa 1和Koa 2 257
9.1.3 安裝NVM控制Node. js版本 260
9.2 應用程序和上下文 262
9.2.1 語法糖 262
9.2.2 HTTP服務 263
9.2.3 上下文(Context) 263
9.3 Koa路由 265
9.4 靜態資源訪問 268
9.5 綜合項目實訓——商品信息顯示 271
9.6 本章小結 278
9.7 本章習題 278
第 10章
項目優化及線上部署 280
10.1 性能優化 280
10.1.1 使用CDN 280
10.1.2 減少HTTP請求數 280
10.1.3 優化圖片 281
10.1.4 將外部腳本置底 282
10.1.5 使用Webpack壓縮打包 282
10.2 服務器部署和發布 285
10.2.1 購買服務器 285
10.2.2 購買域名 286
10.2.3 安裝系統 286
10.2.4 設置項目環境 287
10.3 本章習題 291
附錄
JavaScript知識點摘要 292


作者介紹


唐小燕,碩士研究生,副教授/工程師,承擔過專業方向負責人、二級督導組長等工作。參加2020年江蘇省職業院校信息化大賽團隊獲一等獎、江蘇省高校微課教學比賽獲二等獎;2019年江蘇省職業院校信息化大賽團隊獲二等獎。近五年來,教學質量考核均為“優秀”,兩次榮獲學院優秀學生工作者、教學創新創意大賽銅獎。主持2門院級在線開放課程建設,參與多門省級級精品在線開放課建設。曾獲學校金講台教師、巾幗標兵、師德標兵、優秀督導、優秀共產黨員等多項榮譽稱號。

劉洪武,碩士研究生,教授,畢業於中國人民解放軍國防科技大學。主持省級軟件技術教學資源庫1個,主持院級人工智能教學資源庫1個;參與多門省級在線開放課程建設。 2019年獲得職業院校教學能力大賽國賽二等獎;2021年獲得河北省教學成果獎特等獎;近年指導學生獲得職業技能大賽獲得國賽二等獎2項。

虞菊花,碩士研究生,講師。出版國規教材1本,參與多本教材的編寫。主持1門1門省級在線開放課程建設,參與多門省級、校級在線開放課程的建設。參加2020年江蘇省職業院校信息化大賽團隊獲二等獎;2017年江蘇省高校微課教學比賽獲一等獎,連續兩年指導學生參加江蘇省高等職業院校技能大賽獲一等獎。曾獲學校優秀學生工作者、教學創新創意大賽銀獎、優秀共產黨員等多項榮譽稱號。

王洪海,瀋陽職業技術學院,教研室主任,碩士,副教授,瀋陽市人才,從事職業教育計算機專業教學16年,主要研究領域軟件開發、測試、web前端開發等。 ”

王緒峰 碩士研究生,山東勞動職業技術學院副教授,省級教學團隊和省級名師工作室骨干成員,山東省教育科學研究院教研員。從事軟件技術開發相關課程的理論與實踐教學工作,參與教科研課題6項、出版教材3部。指導學生參加省職業院校技能大賽獲一等獎4次,榮獲“優秀指導教師”稱號,省級“優秀指導教師”稱號。




相關書籍

JavaScript程序設計

作者 迪奧尼西奧 (John David Dionisio) 托爾(Ray Toal)

2021-11-01

Trust and Reputation for Service-Oriented Environments: Technologies For Building Business Intelligence And Consumer Confidence

作者 Elizabeth Chang Farookh Hussain Tharam Dillon

2021-11-01

大數據網絡傳播模型和算法

作者 陳衛

2021-11-01