Node.js應用開發實戰教程(AI助學)(電子活頁式)

石範鋒 陳承歡

  • 出版商: 人民郵電
  • 出版日期: 2026-08-01
  • 定價: $419
  • 售價: $418
  • 語言: 簡體中文
  • ISBN: 7115697906
  • ISBN-13: 9787115697905
  • 相關分類: Node.js
  • 下單後立即進貨 (約4週~6週)

  • Node.js應用開發實戰教程(AI助學)(電子活頁式)-preview-1
Node.js應用開發實戰教程(AI助學)(電子活頁式)-preview-1

商品描述

本書合理選取並有序組織內容,兼顧靈活性與實用性。本書將Node.js理論知識與編程訓練按照由易到難、由淺入深的規律進行編寫,全書共9個模塊,分別為Node.js環境搭建與第一個Node.js程序的創建,Node.js模塊化編程與核心API應用,Node.js異步編程與事件驅動,Node.js文件系統編程與流處理,Node.js網絡編程與API開發,Node.js數據庫編程與ORM實踐,基於Express的Web應用編程與工程化開發,綜合性Web項目開發與分布式架構,Node.js程序測試、部署與性能監控。每個模塊通過設置學習領會、引導訓練、自主訓練、在線測試4個學習階段,引入了不同層次的編程技能訓練環節。本書積極探索教材智能化創新形態,各個模塊根據需要合理設置【AI解惑】【AI破難】【AI智編】等AI工具應用形式。 本書可作為普通高等院校Node.js應用開發相關課程的教材,也可作為相關企業及培訓機構的教學參考資料。

作者簡介

石範鋒教授,博士,現任揚州工業職業技術學院信息工程學院院長,教育部職業院校中國特色學徒制教學指導委員會副秘書長,江蘇省“青藍工程”優秀教學團隊負責人。先後獲得全國職業院校技能大賽優秀工作者、江蘇省技術能手和江蘇省科技副總等榮譽稱號。主持省部級課題多項,發表論文十余篇,其中SCI/EI收錄論文5篇、中文核心1篇;獲國家教學成果二等獎、省級教學成果一等獎等獎項;指導學生榮獲中國國際大學生創新大賽金獎,並在省級職業院校技能大賽中多次斬獲一、二等獎。

目錄大綱

模塊1 Node.js環境搭建與第 一個Node.js程序的創建 1 學習領會 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.2 搭建Node.js環境 3 1.2.1 在Windows操作系統上安裝Node.js 3 1.2.2 安裝開發工具Visual Studio Code 4 1.2.3 驗證Node.js與npm安裝 4 1.3 創建第 一個Node.js程序 4 1.3.1 配置Node.js程序開發環境 4 1.3.2 編寫Node.js程序代碼 5 1.3.3 理解CommonJS模塊規範 5 1.4 Node.js程序運行與調試 6 1.4.1 在VS Code中運行Node.js程序 6 1.4.2 調試Node.js程序 6 1.4.3 使用REPL交互式環境 6 1.4.4 使用nodemon實現熱重載 7 引導訓練 7 【實戰任務1-1】 利用http模塊搭建基礎的HTTP服務 7 【實戰任務1-2】 通過實例體驗CommonJS規範中模塊的導出和導入機制 11 自主訓練 12 【實戰任務1-3】 模塊導出與導入 12 【實戰任務1-4】 命令行參數解析 12 在線測試 12 模塊2 Node.js模塊化編程與核心API應用 13 學習領會 13 2.1 Node.js模塊系統 13 2.1.1 ESM與CommonJS規範 13 2.1.2 自定義模塊 14 2.1.3 使用import/require()導入模塊 15 2.1.4 module.exports與exports的區別 15 2.1.5 模塊加載順序 16 2.1.6 模塊緩存機制 16 2.2 Node.js全局對象 17 2.2.1 __filename與__dirname 18 2.2.2 console模塊 18 2.2.3 process對象 21 2.3 Node.js核心模塊 23 2.3.1 os模塊 23 2.3.2 util模塊 24 2.3.3 path模塊 24 2.3.4 url模塊 27 2.3.5 querystring模塊 28 2.3.6 buffer模塊 29 2.3.7 events模塊 29 2.4 Node.js包管理與依賴管理 30 2.4.1 包與模塊的區別 31 2.4.2 使用npm 31 2.4.3 使用Yarn 31 2.4.4 package.json配置解釋 32 2.4.5 使用tsconfig.json或package.json配置路徑映射 33 2.4.6 環境變量與配置文件管理 33 2.4.7 依賴版本控制 34 2.5 Node.js集成 34 2.5.1 Node.js與TypeScript集成 35 2.5.2 Node.js與WebAssembly集成 35 引導訓練 36 【實戰任務2-1】 將常用工具函數按功能拆分到不同模塊 36 【實戰任務2-2】 創建路徑別名解析器 37 【實戰任務2-3】 封裝事件發射器,添加日誌記錄功能 38 【實戰任務2-4】 創建簡單計算器 39 自主訓練 40 【實戰任務2-5】 自定義模塊導出與導入 40 【實戰任務2-6】 使用path模塊解析與拼接路徑 40 【實戰任務2-7】 通過EventEmitter實現事件觸發與監聽 40 在線測試 40 模塊3 Node.js異步編程與事件驅動 41 學習領會 41 3.1 異步編程基礎 41 3.1.1 異步編程概念 41 3.1.2 回調函數與回調地獄 42 3.2 事件機制 43 3.2.1 事件循環 43 3.2.2 事件監聽與觸發 43 3.2.3 EventEmitter類的自定義事件 44 3.3 定時器與執行順序 46 3.3.1 setTimeout()與clearTimeout() 46 3.3.2 setImmediate()與clearImmediate() 46 3.3.3 process.nextTick() 47 3.4 事件循環的執行順序 47 3.5 異步控制 48 3.5.1 Promise原理與鏈式調用 48 3.5.2 async/await語法糖 50 3.5.3 異步錯誤處理 51 3.5.4 全局未捕獲異常處理 52 引導訓練 53 【實戰任務3-1】 創建異步任務調度器控制異步任務的並發數量 53 【實戰任務3-2】 實現帶指數退避的異步操作重試機制 54 【實戰任務3-3】 使用async/await優化文件讀取 56 自主訓練 57 【實戰任務3-4】 事件驅動編程 57 【實戰任務3-5】 通過Promise鏈式調用輸出文本文件的內容 58 【實戰任務3-6】 通過Promise封裝+async/await異步讀取並輸出文件內容 58 【實戰任務3-7】 異步錯誤處理 58 在線測試 58 模塊4 Node.js文件系統編程與流處理 59 學習領會 59 4.1 文件系統基礎 59 4.1.1 fs模塊 59 4.1.2 文件路徑處理 60 4.1.3 文件模式 60 4.1.4 文件描述符與文件鎖 61 4.2 文件操作 61 4.2.1 打開/關閉文件 61 4.2.2 獲取文件或文件夾信息 62 4.2.3 讀取文件 62 4.2.4 寫入文件 63 4.2.5 文件夾操作 64 4.2.6 文件權限管理 65 4.3 流處理 66 4.3.1 可讀流與可寫流 66 4.3.2 管道操作 66 4.3.3 流式文件讀寫 67 4.3.4 大文件處理策略(流式壓縮/解壓縮) 69 4.4 文件進階操作 69 4.4.1 文件遍歷 69 4.4.2 文件監控與變更檢測 70 4.4.3 操作JSON文件 71 4.4.4 處理GBK編碼文件 72 引導訓練 73 【實戰任務4-1】 模擬異步數據流處理 73 【實戰任務4-2】 CSV文件解析與輸出 75 【實戰任務4-3】 環境特定配置加載與輸出 75 【實戰任務4-4】 文件批量重命名 77 【實戰任務4-5】 日誌文件監控與分析 77 【實戰任務4-6】 大文件分割與合並 79 自主訓練 79 【實戰任務4-7】 轉換流處理 80 【實戰任務4-8】 流處理實現大文件復制 80 【實戰任務4-9】 對文件進行壓縮並生成Gzip格式的壓縮文件 80 在線測試 80 模塊5 Node.js網絡編程與API開發 81 學習領會 81 5.1 TCP/UDP編程 81 5.1.1 net模塊應用 81 5.1.2 dgram模塊應用 85 5.1.3 UDP文件上傳 88 5.2 HTTP編程 90 5.2.1 使用原生http模塊構建HTTP服務器 90 5.2.2 使用原生http模塊構建http客戶端 91 5.2.3 解析請求內容 92 5.2.4 使用Postman測試API 94 5.3 RESTful API設計規範 95 5.3.1 HTTP方法應用與資源命名約定 96 5.3.2 狀態碼的合理使用 97 5.4 實時通信 98 5.4.1 WebSocket服務器與客戶端實現 99 5.4.2 Socket.IO集成 100 5.4.3 WebSocket鑒權與心跳機制 102 引導訓練 106 【實戰任務5-1】 創建與運行簡單HTTP服務器 106 【實戰任務5-2】 創建與運行簡易靜態文件服務器 107 【實戰任務5-3】 實現簡單的RESTful API服務器 109 【實戰任務5-4】 RESTful API客戶端調用其他API獲取數據 110 【實戰任務5-5】 創建基於WebSocket的簡單聊天服務器 110 自主訓練 111 【實戰任務5-6】 創建一個HTTP服務器 112 【實戰任務5-7】 創建一個HTTP代理服務器 112 【實戰任務5-8】 實現回顯功能的WebSocket服務器 112 在線測試 112 模塊6 Node.js數據庫編程與ORM實踐 113 學習領會 113 6.1 MySQL操作 113 6.1.1 連接MySQL 113 6.1.2 增刪改查操作 115 6.1.3 預處理語句防止SQL註入 117 6.2 數據庫操作的異步控制 119 6.2.1 Generator與co模塊 119 6.2.2 使用Promise包裝MySQL操作 121 6.3 ORM框架 123 6.3.1 模型定義與數據類型映射 123 6.3.2 關聯關系 125 6.3.3 Sequelize數據遷移與種子腳本 126 6.4 數據庫事務管理 128 6.4.1 數據庫事務管理概述 128 6.4.2 MySQL事務管理與隔離級別 129 6.5 數據庫連接池管理與性能優化 131 6.5.1 連接池參數調優 131 6.5.2 連接泄漏檢測與處理 132 引導訓練 132 【實戰任務6-1】 使用mysql2庫連接MySQL數據庫實現增刪改查操作 132 【實戰任務6-2】 通過數據庫事務處理實現轉出與轉入指定金額 133 【實戰任務6-3】 使用Sequelize操作SQLite內存數據庫實現事務操作 135 自主訓練 136 【實戰任務6-4】 實現創建與操作數據表 136 【實戰任務6-5】 實現簡單的銀行賬戶轉賬事務 136 【實戰任務6-6】 在Node.js中使用SQLite3實現基本數據表操作 136 在線測試 136 模塊7 基於Express的Web應用編程與工程化開發 137 學習領會 137 7.1 項目初始化 137 7.1.1 使用Express生成器創建項目 137 7.1.2 MySQL數據庫連接池集成 138 7.2 基於Express的路由系統 142 7.2.1 查詢參數解析 142 7.2.2 基礎路由定義與參數捕獲 143 7.2.3 路由中間件與權限控制 144 7.2.4 RESTful API路由設計 145 7.3 基於Express的中間件生態 146 7.3.1 中間件機制與執行順序 147 7.3.2 常用中間件 148 7.3.3 定制日誌中間件 149 7.3.4 JWT身份認證中間件 149 7.3.5 Express錯誤處理中間件 151 7.4 模板引擎與布局管理 152 7.4.1 EJS/Pug模板引擎 152 7.4.2 視圖渲染與布局管理 153 7.5 會話管理與認證 155 7.5.1 基於Cookie的會話實現 155 7.5.2 基於Cookie/Session的認證 156 7.5.3 OAuth第三方登錄集成 157 7.6 Express集成 158 7.6.1 Express與數據庫集成 158 7.6.2 Express集成OpenAPI規範 161 7.6.3 統一錯誤處理 166 7.7 安全與性能優化 173 7.7.1 HTTPS配置與證書管理 173 7.7.2 CORS配置 174 7.7.3 數據庫連接池與負載均衡 175 引導訓練 176 【實戰任務7-1】 文件上傳與管理 176 【實戰任務7-2】 用戶註冊表單驗證與處理 178 【實戰任務7-3】 構建基於JWT的認證系統 179 【實戰任務7-4】 使用Express+MySQL連接池方式實現博客API服務 180 【實戰任務7-5】 大文件分片上傳 184 自主訓練 186 【實戰任務7-6】 RESTful API實現用戶管理的創建和查詢操作 186 【實戰任務7-7】 創建日誌中間件 186 【實戰任務7-8】 使用Swagger工具生成API文檔 186 【實戰任務7-9】 實現限制請求速率的Express服務器 187 【實戰任務7-10】 實現簡單的視頻文件分塊上傳 187 在線測試 187 模塊8 綜合性Web項目開發與分布式架構 188 學習領會 188 8.1 前後端數據交互 188 8.1.1 跨域處理 188 8.1.2 服務器端渲染與客戶端渲染 190 8.1.3 文件上傳與CDN集成 192 8.1.4 RESTful API與GraphQL的選擇 194 8.2 Web項目架構設計 196 8.2.1 MVC與MVVM架構模式 196 8.2.2 分層設計 201 8.3 應用集成 201 8.3.1 與前端框架集成方案 201 8.3.2 消息隊列實現異步通信 204 8.3.3 微服務基礎 206 8.3.4 微服務架構簡介 207 8.4 系統安全管理 210 8.4.1 輸入驗證與防XSS 210 8.4.2 密碼哈希與加鹽 210 8.4.3 安全頭信息配置 211 引導訓練 212 【實戰任務8-1】 構建任務管理系統 212 【實戰任務8-2】 構建實時聊天系統 213 【實戰任務8-3】 實現MySQL訂單系統 215 自主訓練 219 【實戰任務8-4】 使用Express和Multer實現文件的上傳功能 219 【實戰任務8-5】 構建簡易的博客系統後端API 219 在線測試 219 模塊9 Node.js程序測試、部署與性能監控 220 學習領會 220 9.1 Node.js程序測試策略 220 9.1.1 使用斷言庫 220 9.1.2 Mocha單元測試 221 9.1.3 Jest集成測試與E2E測試 225 9.1.4 使用REST Client測試工具 228 9.2 Node.js程序集成測試與E2E測試 231 9.2.1 使用Supertest測試HTTP接口 232 9.2.2 使用Jest模擬外部服務 233 9.3 Node.js程序部署與運維 236 9.3.1 部署方式 236 9.3.2 PM2進程管理 236 9.3.3 Docker容器化部署 237 9.3.4 Serverless部署 238 9.3.5 Nginx反向代理與負載均衡 239 9.3.6 Windows開機自啟動 240 9.4 Node.js程序性能優化與監控 241 9.4.1 內存泄漏檢測與分析 241 9.4.2 CPU性能瓶頸定位 242 9.4.3 使用ELK組件收集與分析日誌 244 9.4.4 使用process.memoryUsage()監控內存 245 9.4.5 使用console.time()進行性能分析 246 9.4.6 使用APM工具監控性能 247 引導訓練 248 【實戰任務9-1】 使用Jest + Supertest測試Express API 248 【實戰任務9-2】 使用Jest和Supertest實現單元測試和API集成測試 249 【實戰任務9-3】 測試簡易博客系統後端API 252 【實戰任務9-4】 使用JSON文件測試訂單API 253 自主訓練 256 【實戰任務9-5】 Mocha單元測試 256 【實戰任務9-6】 Jest單元測試 256 【實戰任務9-7】 使用console.time()進行性能分析 256 【實戰任務9-8】 使用Puppeteer實施E2E測試 257 在線測試 258