Node.js + Webpack 開發實戰

夏磊

  • 出版商: 清華大學
  • 出版日期: 2020-08-01
  • 售價: $414
  • 貴賓價: 9.5$393
  • 語言: 簡體中文
  • 頁數: 306
  • 裝訂: 平裝
  • ISBN: 7302555958
  • ISBN-13: 9787302555957
  • 相關分類: Node.jsWebpack
  • 立即出貨 (庫存 < 3)

  • Node.js + Webpack 開發實戰-preview-1
  • Node.js + Webpack 開發實戰-preview-2
  • Node.js + Webpack 開發實戰-preview-3
Node.js + Webpack 開發實戰-preview-1

買這商品的人也買了...

商品描述

全書共9章,主要介紹了Nodejs web開發中常用類庫、http、express、egg、ws、socket.io、pemolo等熱門框架學習,內容涵蓋市場上大部分的開發工作。

作者簡介

夏磊

畢業於湖南工業大學網絡工程專業,擁有多年研發經驗。
在過去的幾年裡,他還是很多開源項目的貢獻者。
精通PHP腳本開發、Node.js/Golang服務端開發以及JavaScript開發,善於把握與應用新技術,
博客和公眾號上有大量的Web相關技術文章,深受讀者好評。
著有圖書《ThinkPHP實戰》和《ThinkPHP5實戰》。

目錄大綱

目   錄

第一部分  Node.js基礎篇

第1章  Node.js概述 3

1.1  NODE.JS是什麽 3

1.2  NODE.JS的運行原理 5

1.3  NODE.JS的應用場景 6

1.3.1  Node.js優缺點 6

1.3.2  應用場景 7

1.4  本章小結 7

第2章  搭建Node.js開發環境 8

2.1  安裝NODE.JS 8

2.1.1  Windows上安裝Node.js 8

2.1.2  Linux安裝Node.js 9

2.1.3  Ubuntu安裝Node.js 9

2.1.4  CentOS安裝Node.js 9

2.1.5  macOS安裝Node.js 10

2.2  安裝VSCODE編輯器 10

2.3  編寫HTTP服務器 11

2.4  本章小結 12

第3章  Node.js編程基礎 13

3.1  NPM包管理器介紹 13

3.1.1  更換NPM鏡像源 13

3.1.2  初始化項目 14

3.1.3  使用npm命令安裝模塊 14

3.1.4  本地安裝與全局安裝 14

3.1.5  生產依賴和開發依賴 15

3.1.6  其他npm命令 15

3.2  YARN包管理器介紹 16

3.2.1  安裝Yarn 16

3.2.2  Yarn常用命令 16

3.3  解讀PACKAGE.JSON文件 16

3.3.1  package.json字段說明 17

3.3.2  版本號說明 18

3.3.3  常見的版本號限定符 18

3.4  NODE.JS的模塊系統 18

3.4.1  module和exports 19

3.4.2  require 20

3.4.3  開發一個自定義模塊 21

3.5  NODE.JS的異步編程風格 22

3.5.1  回調函數 22

3.5.2  Promise 23

3.5.3  async/await 26

3.6  NODE.JS常用核心模塊 28

3.6.1  events模塊 28

3.6.2  fs模塊 29

3.6.3  stream接口 32

3.6.4  http模塊 35

3.7  本章小結 36

第二部分  後端的Node.js

第4章  最流行的Web框架——Express 39

4.1  框架簡介 39

4.2  快速開始 40

4.2.1  初始化項目 40

4.2.2  開始編碼 40

4.2.3  運行應用 41

4.2.4  小結 41

4.3  路由 41

4.3.1  路由方法 42

4.3.2  路由路徑 42

4.3.3  路由參數 44

4.3.4  路由函數 45

4.4  請求對象 47

4.4.1  獲取請求Cookie 49

4.4.2  獲取請求體 50

4.5  響應對象 50

4.6  中間件 54

4.6.1  全局中間件 54

4.6.2  路由中間件 55

4.6.3  可配置的中間件 55

4.6.4  Cookie中間件 57

4.6.5  響應時長中間件 57

4.6.6  靜態資源中間件 58

4.7  錯誤處理 59

4.7.1  同步錯誤 59

4.7.2  異步錯誤 60

4.7.3  自定義錯誤處理函數 60

4.7.4  多個錯誤處理函數 61

4.8  模板渲染 62

4.8.1  使用ejs模板 62

4.8.2  ejs語法 63

4.9  留言板項目開發 65

4.9.1  開始編碼 65

4.9.2  運行項目 67

4.10  本章小結 68

第5章  下一代Web開發框架——Koa 70

5.1  KOA簡介 70

5.2  BLUEBIRD 71

5.3  KOA快速開始 72

5.3.1  初始化項目 72

5.3.2  開始編碼 73

5.4  CONTEXT 73

5.5  COOKIE操作 75

5.5.1  Cookie簽名 75

5.5.2  寫入Cookie 75

5.5.3  讀取Cookie 76

5.5.4  中間件 76

5.5.5  請求日誌中間件 78

5.5.6  可配置的中間件 79

5.5.7  Cookie解析中間件 80

5.5.8  路由函數 81

5.5.9  多個路由函數 81

5.5.10  錯誤處理 82

5.5.11  多個錯誤處理器 83

5.6  路由系統 84

5.6.1  快速開始 85

5.6.2  路由對象 85

5.6.3  路由路徑 86

5.6.4  路由函數 86

5.6.5  路由級別中間件 87

5.6.6  路由前綴 87

5.6.7  模塊化路由 88

5.7  模板渲染 89

5.7.1  快速開始 89

5.7.2  模板佈局 90

5.8  博客項目實戰 92

5.8.1  功能梳理 92

5.8.2  項目代碼 93

5.8.3  效果展示 100

5.8.4  項目小結 102

5.9  本章小結 102

第6章  文檔型NoSQL數據庫——MongoDB 103

6.1  簡介 103

6.1.1  主要特點 103

6.1.2  概念 104

6.1.3  數據庫 104

6.1.4  集合 105

6.1.5  文檔 105

6.2  安裝 106

6.2.1  Windows 106

6.2.2  Linux 107

6.2.3  macOS 108

6.3  常用操作 109

6.3.1  創建數據庫 109

6.3.2  刪除數據庫 109

6.3.3  創建集合 110

6.3.4  查看集合 110

6.3.5  刪除集合 110

6.3.6  索引 111

6.3.7  插入文檔 112

6.3.8  更新文檔 112

6.3.9  刪除文檔 113

6.3.10  查詢文檔 113

6.3.11  其他查詢語法 115

6.4  NODE.JS集成 116

6.4.1  初始化項目 116

6.4.2  連接數據庫 116

6.4.3  mongoose的關鍵概念 117

6.4.4  Schema 117

6.4.5  Model 120

6.5  本章小結 121

第7章  最流行的關系型數據庫——MySQL 123

7.1  簡介 123

7.2  安裝 123

7.2.1  Windows 124

7.2.2  Linux 124

7.2.3  macOS 126

7.3  術語 126

7.4  索引 127

7.4.1  普通索引 127

7.4.2  唯一索引 127

7.4.3  聯合索引 128

7.5  事務 128

7.5.1  ACID原則 128

7.5.2  事務並發問題 129

7.5.3  隔離級別 129

7.5.4  事務控制語句 129

7.6  關聯關系 130

7.6.1  一對多關聯 130

7.6.2  一對一關聯 131

7.6.3  多對多關聯 131

7.7  數據庫操作 132

7.8  數據類型 133

7.9  數據表操作 135

7.9.1  創建數據表 135

7.9.2  刪除數據表 136

7.9.3  添加字段 136

7.9.4  刪除字段 137

7.9.5  修改字段 137

7.10  數據操作 137

7.10.1  插入數據 137

7.10.2  查詢數據 138

7.10.3  修改數據 139

7.10.4  刪除數據 139

7.11  本章小結 140

第8章  ORM框架——Sequelize 141

8.1  ORM 141

8.2  SEQUELIZE簡介 142

8.3  快速開始 142

8.4  構造方法 143

8.5  數據類型 144

8.6  模型定義 146

8.6.1  字段設置 146

8.6.2  模型選項 147

8.6.3  Hooks 148

8.6.4  生命周期函數 149

8.6.5  模型驗證器 150

8.6.6  模型方法 155

8.6.7  索引 156

8.6.8  數據庫同步 157

8.7  模型使用 157

8.7.1  插入數據 158

8.7.2  更新數據 159

8.7.3  刪除數據 160

8.7.4  查詢數據 161

8.7.5  查詢語法 164

8.7.6  事務 165

8.8  關聯 167

8.8.1  hasOne 167

8.8.2  belongsTo 169

8.8.3  hasMany 171

8.8.4  belongsToMany 173

8.9  本章小結 175

第9章  微博項目開發 176

9.1  功能分析 176

9.2  數據模型 177

9.3  開始編碼 177

9.3.1  初始化項目 177

9.3.2  項目目錄 178

9.3.3  路由設計 178

9.3.4  共享組件 178

9.3.5  中間件 179

9.3.6  模型代碼 180

9.3.7  生成數據表 183

9.3.8  業務代碼 184

9.3.9  路由代碼 188

9.3.10  視圖文件 192

9.3.11  Web應用引導文件 193

9.4  效果展示 194

9.5  項目代碼 196

9.6  本章小結 196

第10章  高性能內存型NoSQL數據庫——Redis 197

10.1  REDIS簡介 197

10.1.1  特點 197

10.1.2  應用場景 198

10.2  REDIS安裝 198

10.2.1  在Windows下安裝Redis 198

10.2.2  在Linux下安裝Redis 199

10.2.3  在macOS下安裝 Redis 199

10.3  REDIS支持的數據結構 200

10.3.1  String(字符串) 200

10.3.2  哈希表(Hash) 201

10.3.3  列表(List) 202

10.3.4  集合(Set) 203

10.3.5  有序集合(ZSet) 203

10.3.6  發布訂閱 204

10.4  NODE.JS集成REDIS 205

10.4.1  快速開始 205

10.4.2  Promise 206

10.5  本章小結 207

第11章  實時雙向Web技術——WebSocket 208

11.1  傳統的實時WEB技術 208

11.1.1  Ajax輪詢(Ajax Polling) 208

11.1.2  服務器推送(Comet) 209

11.2  WEBSOCKET 209

11.3  實現WEBSOCKET握手協議 210

11.3.1  握手協議過程 211

11.3.2  服務端代碼 211

11.3.3  客戶端代碼 212

11.4  使用WS模塊開發聊天室 212

11.4.1  安裝依賴 213

11.4.2  服務端代碼 213

11.4.3  客戶端代碼 214

11.5  本章小結 215

第三部分  前端中的Node.js

第12章  迅速發展的前端技術 219

12.1  模塊系統 219

12.1.1  CommonJS 220

12.1.2  AMD 220

12.1.3  CMD 221

12.1.4  ES6模塊化 221

12.2  新語言 222

12.2.1  ES6 222

12.2.2  TypeScript 222

12.2.3  Less 223

12.2.4  SCSS 223

12.3  新框架 224

12.3.1  AngularJS 224

12.3.2  React 224

12.3.3  Vue 224

12.3.4  Angular 225

12.4  構建工具 225

12.4.1  Grunt 226

12.4.2  Gulp 226

12.4.3  Webpack 227

12.5  本章小結 228

第13章  Webpack起步 229

13.1  安裝 229

13.2  示例項目 230

13.3  LOADER 231

13.3.1  CSS處理 231

13.3.2  圖片處理 232

13.4  PLUGIN 234

13.4.1  提取CSS 234

13.4.2  自動更新HTML中的資源引用 236

13.5  開發服務器 237

13.6  核心概念 239

13.7  本章小結 239

第14章  Webpack配置 240

14.1  MODE 241

14.2  ENTRY 和 CONTEXT 241

14.2.1  不配置Context的情況 241

14.2.2  配置Context的情況 242

14.3  OUTPUT 242

14.3.1  chunkFilename 243

14.3.2  path 243

14.3.3  publicPath 244

14.3.4  libraryTarget和library 244

14.4  MODULE 246

14.4.1  noParse 246

14.4.2  rules 247

14.5  RESOLVE 248

14.5.1  alias 248

14.5.2  extensions 249

14.5.3  mainFields 249

14.5.4  modules 250

14.6  DEVTOOL 250

14.7  EXTERNALS 250

14.8  DEVSERVER 251

14.9  PLUGINS 252

14.10  完整示例 252

14.11  本章小結 254

第15章  Vue實戰 255

15.1  HELLO WORLD 255

15.2  配置WEBPACK 257

15.2.1  Loader和Plugin 257

15.2.2  安裝依賴模塊 257

15.2.3  編寫配置文件 258

15.2.4  執行構建 259

15.3  生產構建 259

15.3.1  Webpack配置 259

15.3.2  package.json修改 260

15.4  TYPESCRIPT支持 261

15.4.1  TypeScript配置 261

15.4.2  Webpack配置 262

15.4.3  App.vue 263

15.5  本章小結 264

第16章  React實戰 265

16.1  JSX 265

16.2  BABEL 266

16.3  TYPESCRIPT 268

16.4  本章小結 271

第17章  服務端渲染 272

17.1  SSR原理 273

17.2  添加SSR的WEBPACK.CONFIG.JS 273

17.3  添加SSR的入口文件 274

17.4  添加SSR打包命令 275

17.5  執行構建 275

17.6  添加NODE.JS HTTP服務器 275

17.7  目錄結構 276

17.8  運行應用 276

17.9  本章小結 277

第18章  多頁應用腳手架 278

18.1  項目結構 278

18.2  開發步驟 279

18.2.1  初始化項目與安裝依賴 279

18.2.2  配置 280

18.3  業務代碼 282

18.4  本章小結 283

第19章  性能優化 284

19.1  限定WEBPACK處理文件範圍 284

19.2  DLLPLUGIN 285

19.3  HAPPYPACK 287

19.4  TREE-SHAKING 288

19.5  按需加載 289

19.6  提取公共代碼 289

19.7  熱更新 290

19.8  本章小結 290

第20章  編寫自定義Loader 291

20.1  基本LOADER 291

20.2  LOADER選項 293

20.3  異步LOADER 294

20.4  "RAW" LOADER 295

20.5  讀取LOADER配置文件 295

20.5.1  項目結構 295

20.5.2  執行構建 297

20.6  本章小結 297

第21章  編寫自定義插件 298

21.1  基本構建流程 298

21.2  插件示例 299

21.3  COMPILER與COMPILATION對象 299

21.4  TAPABLE 300

21.5  常用操作 301

21.5.1  讀取輸出資源、模塊及依賴 301

21.5.2  修改輸出資源 302

21.6  插件編寫實例 302

21.6.1  生成清單文件 303

21.6.2  構建結果上傳到CDN 304

21.7  本章小結 306