Node.js是一個基于Chrome V8引擎的JavaScript運行環(huán)境,用來編寫服務器端程序。Node.js是新興的開發(fā)工具,也是目前發(fā)展較快的開發(fā)工具之一。近幾年來,隨著Node.js的發(fā)展,越來越多的開發(fā)人員選擇用它構建Web應用。
本書較為系統(tǒng)地介紹了目前Node.js應用開發(fā)中涉及的基礎知識和核心技術,并通過案例介紹了基于Express和Koa框架的項目開發(fā)。本書著重實際應用,案例及實訓項目的實用性和可操作性強,能夠幫助讀者學以致用。全書共分10章,主要包括Node.js認知、模塊機制、Node.js異步編程、Buffer緩存區(qū)和文件系統(tǒng)、構建Web應用、Express框架、Express模板引擎、數(shù)據(jù)庫應用開發(fā)、Koa框架、項目優(yōu)化及線上部署等Web應用開發(fā)中為重要的內容。
本書可作為本科和高職院校計算機相關專業(yè)的教材,也可作為計算機培訓用教材,還可作為計算機相關技術愛好者的自學參考書。
1.內容細致,組織合理
本書由淺入深介紹了Node.js的基礎知識及核心技術,并結合當下軟件技術專業(yè)學生的特點,以碎片化知識點為單元,通過理論與實踐相結合的方式,幫助讀者在學習Node.js知識的同時進行項目實踐。
2.結合實際,突出實踐
本書包含了大量企業(yè)工程師精心設計的示例和項目實訓,體現(xiàn)了“教、學、做”一體化思想,方便讀者快速上手,培養(yǎng)讀者的實際操作能力。示例和項目實踐有詳細的代碼說明和步驟。
3.資源豐富,立體教學
本書配備了豐富的立體化教學資源,包括教師專項教學PPT、源代碼、習題答案以及各章節(jié)的在線教學視頻,可按書中指示獲取。附錄中整理了JavaScript語言知識點摘要,方便讀者查閱學習。
唐小燕,碩士研究生,副教授/工程師,承擔過專業(yè)方向負責人、二級督導組長等工作。參加2020年江蘇省職業(yè)院校信息化大賽團隊獲一等獎、江蘇省高校微課教學比賽獲二等獎;2019年江蘇省職業(yè)院校信息化大賽團隊獲二等獎。近五年來,教學質量考核均為“優(yōu)秀”,兩次榮獲學院優(yōu)秀學生工作者、教學創(chuàng)新創(chuàng)意大賽銅獎。主持2門院級在線開放課程建設,參與多門省級級精品在線開放課建設。曾獲學校金講臺教師、巾幗標兵、師德標兵、優(yōu)秀督導、優(yōu)秀共產(chǎn)黨員等多項榮譽稱號。
劉洪武,碩士研究生,教授,畢業(yè)于中國人民解放軍國防科技大學。主持省級軟件技術教學資源庫1個,主持院級人工智能教學資源庫1個;參與多門省級在線開放課程建設。2019年獲得職業(yè)院校教學能力大賽國賽二等獎;2021年獲得河北省教學成果獎特等獎;近年指導學生獲得職業(yè)技能大賽獲得國賽二等獎2項。
虞菊花,碩士研究生,講師。出版國規(guī)教材1本,參與多本教材的編寫。主持1門1門省級在線開放課程建設,參與多門省級、校級在線開放課程的建設。參加2020年江蘇省職業(yè)院校信息化大賽團隊獲二等獎;2017年江蘇省高校微課教學比賽獲一等獎,連續(xù)兩年指導學生參加江蘇省高等職業(yè)院校技能大賽獲一等獎。曾獲學校優(yōu)秀學生工作者、教學創(chuàng)新創(chuàng)意大賽銀獎、優(yōu)秀共產(chǎn)黨員等多項榮譽稱號。
王洪海,沈陽職業(yè)技術學院,教研室主任,碩士,副教授,沈陽市人才,從事職業(yè)教育計算機專業(yè)教學16年,主要研究領域軟件開發(fā)、測試、web前端開發(fā)等!
王緒峰 碩士研究生,山東勞動職業(yè)技術學院副教授,省級教學團隊和省級名師工作室骨干成員,山東省教育科學研究院教研員。從事軟件技術開發(fā)相關課程的理論與實踐教學工作,參與教科研課題6項、出版教材3部。指導學生參加省職業(yè)院校技能大賽獲一等獎4次,榮獲“優(yōu)秀指導教師”稱號,省級“優(yōu)秀指導教師”稱號。
目錄
第 1章
Node.js認知 1
1.1 Node.js簡介 1
1.1.1 什么是Node.js 1
1.1.2 Node.js發(fā)展歷史 1
1.1.3 Node.js特點及應用場景 2
1.1.4 Node.js與JavaScript的區(qū)別 3
1.2 Node.js環(huán)境安裝 3
1.2.1 下載Node.js 3
1.2.2 安裝Node.js 4
1.2.3 安裝Node.js程序編輯環(huán)境 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 模塊的優(yōu)點 21
2.1.3 模塊化規(guī)范 22
2.1.4 項目實訓——模塊化輸出九九乘法表 27
2.2 Node.js模塊基礎 28
2.2.1 模塊的分類 28
2.2.2 自定義模塊 28
2.2.3 項目實訓——模塊化實現(xiàn)四則混合運算 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 回調函數(shù) 41
3.1.1 阻塞 42
3.1.2 非阻塞 43
3.2 異步編程 45
3.2.1 事件發(fā)布/訂閱模式 45
3.2.2 Promise/Deferred模式 46
3.2.3 流程控制庫 51
3.2.4 項目實訓——顯示天氣預報數(shù)據(jù) 52
3.3 本章小結 55
3.4 本章習題 55
第4章
Buffer緩存區(qū)和文件系統(tǒng) 56
4.1 Buffer緩存區(qū) 56
4.1.1 Buffer簡介 56
4.1.2 常用的Buffer類API 58
4.1.3 Buffer與字符編碼 60
4.1.4 項目實訓——Buffer緩存區(qū)操作 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文件數(shù)據(jù)操作 71
4.3 流 75
4.3.1 fs流簡介 75
4.3.2 創(chuàng)建流 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 項目實訓——為前端提供數(shù)據(jù)接口 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 項目實訓——中間件訪問靜態(tài)文件 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章
數(shù)據(jù)庫應用開發(fā) 209
8.1 連接MySQL數(shù)據(jù)庫 209
8.1.1 安裝MySQL 209
8.1.2 MySQL常用語句 218
8.1.3 連接MySQL數(shù)據(jù)庫 221
8.1.4 數(shù)據(jù)庫操作 222
8.1.5 項目實訓——學生信息管理 224
8.2 連接MongoDB數(shù)據(jù)庫 228
8.2.1 MongoDB安裝與配置 228
8.2.2 MongoDB基本操作 235
8.2.3 Mongoose數(shù)據(jù)庫操作 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的區(qū)別 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 靜態(tài)資源訪問 268
9.5 綜合項目實訓——商品信息顯示 271
9.6 本章小結 278
9.7 本章習題 278
第 10章
項目優(yōu)化及線上部署 280
10.1 性能優(yōu)化 280
10.1.1 使用CDN 280
10.1.2 減少HTTP請求數(shù) 280
10.1.3 優(yōu)化圖片 281
10.1.4 將外部腳本置底 282
10.1.5 使用Webpack壓縮打包 282
10.2 服務器部署和發(fā)布 285
10.2.1 購買服務器 285
10.2.2 購買域名 286
10.2.3 安裝系統(tǒng) 286
10.2.4 設置項目環(huán)境 287
10.3 本章習題 291
附錄
JavaScript知識點摘要 292