注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計新時期的Node.js入門

新時期的Node.js入門

新時期的Node.js入門

定 價:¥49.00

作 者: 李鍇 著
出版社: 清華大學(xué)出版社
叢編項: Web前端技術(shù)叢書
標(biāo) 簽: 暫缺

ISBN: 9787302487807 出版時間: 2017-12-01 包裝: 平裝
開本: 16開 頁數(shù): 279 字?jǐn)?shù):  

內(nèi)容簡介

  Node.js是一門開源的、為Web而生的語言,具有高并發(fā)、異步等特點,并且擁有一個十分活躍的開發(fā)者社區(qū)。與Ruby、Python等語言相比,Node.js更年輕、更易于沒有經(jīng)驗的人上手使用,因此很快在世界各地的開發(fā)者中收獲了一大批擁躉。在國內(nèi),Node.js在許多企業(yè)中獲得了廣泛應(yīng)用,并取得了一系列的應(yīng)用成果。然而,隨著技術(shù)的不斷更新、ECMAScript2015等新標(biāo)準(zhǔn)紛紛確定,現(xiàn)有的中文書籍就變得有些過時。本書立足于新的技術(shù)潮流,介紹了一系列全新的語言特性和標(biāo)準(zhǔn),以便讓讀者在學(xué)習(xí)基礎(chǔ)知識的同時緊跟新技術(shù)的發(fā)展。本書分為8章6個附錄,講解了Node.js的各種基礎(chǔ)特性,使讀者快速入門,同時結(jié)合語言*新的發(fā)展趨勢,讓讀者能夠緊跟技術(shù)潮流。本書圍繞Node.js在Web站點開發(fā)和爬蟲系統(tǒng)中的應(yīng)用展開,對Node.js在大型項目中的定位與應(yīng)用做了詳細(xì)的說明。本書可用于Node.js入門,適合未接觸過Node的讀者以及在校的學(xué)生閱讀,也適合作為高等院校和培訓(xùn)學(xué)校相關(guān)專業(yè)的師生教學(xué)參考。

作者簡介

  李鍇,畢業(yè)于廈門大學(xué)軟件學(xué)院,目前就職于花旗集團,從事Web前端開發(fā)工作。

圖書目錄

目錄
 
 
 
第1章  基礎(chǔ)知識          1
1.1  Node是什么  1
1.1.1  Node與JavaScript      1
1.1.2  runtime和VM    2
1.2  Node的內(nèi)部機制  3
1.2.1  何為回調(diào)    3
1.2.2  同步/異步和阻塞/非阻塞 4
1.2.3  單線程和多線程         6
1.2.4  并行和并發(fā)         7
1.3  事件循環(huán)(Event loop)       8
1.3.1  事件與循環(huán)         8
1.3.2  Node中的事件循環(huán)   9
1.3.3  process.nextTick 13
1.4  總結(jié)        16
1.5  參考資源        16
第2章  常用模塊          17
2.1  Module   17
2.1.1  JavaScript的模塊規(guī)范        17
2.1.2  require及其運行機制        18
2.1.3  require的隱患    20
2.1.4  模塊化與作用域         20
2.2  Buffer      22
2.2.1  Buffer的構(gòu)建與轉(zhuǎn)換 23
2.2.2  Buffer的拼接      24
2.3  File System      26
2.4  HTTP服務(wù)      30
2.4.1  創(chuàng)建HTTP 服務(wù)器     30
2.4.2  處理HTTP請求  32
2.4.3  Response對象    34
2.4.4  上傳數(shù)據(jù)    35
2.4.5  HTTP客戶端服務(wù)       38
2.4.6  創(chuàng)建代理服務(wù)器         39
2.5  TCP服務(wù)         40
2.5.1  TCP和Socket      41
2.5.2  創(chuàng)建TCP服務(wù)器         41
2.6  更安全的傳輸方式——SSL  42
2.6.1  什么是SSL  43
2.6.2  SSL原理       43
2.6.3  對稱加密與非對稱加密    44
2.6.4  關(guān)于CA       45
2.6.5  創(chuàng)建HTTPS服務(wù)         45
2.7  WebSocket      48
2.7.1  保持通話    48
2.7.2  為什么要有WebSocket      49
2.7.3  WebSocket與Node    50
2.8  Stream    50
2.8.1  Stream 的種類  50
2.8.2  ReadLine      53
2.8.3  自定義Stream    54
2.9  Events     55
2.9.1  事件和監(jiān)聽器    55
2.9.2  處理error事件  56
2.9.3  繼承Events模塊        57
2.10  多進(jìn)程服務(wù) 58
2.10.1  child_process模塊   58
2.10.2  spawn        58
2.10.3  fork    59
2.10.4  exec和execFile         60
2.10.5  各方法之間的比較  62
2.10.6  進(jìn)程間通信       64
2.10.7  Cluster       65
2.11  Process對象         66
2.11.1  環(huán)境變量  67
2.11.2  方法和事件       67
2.11.3  一個例子:修改所在的時區(qū)  68
2.12  Timer    70
2.12.1  常用API    70
2.12.2  定時器中的this        71
2.13  小結(jié)      72
2.14  引用資源      72
第3章  用ES6來書寫Node         73
3.1  新時代的EMCAScript   73
3.1.1  JavaScript的缺陷        73
3.1.2  Node對新標(biāo)準(zhǔn)的支持       74
3.1.3  使用nvm管理Node版本 75
3.2  塊級作用域   75
3.2.1  ES5中的作用域 75
3.2.2  let關(guān)鍵字   77
3.2.3  const關(guān)鍵字       78
3.3  數(shù)組        78
3.3.1  find()和findIndex()      79
3.3.2  from()方法  79
3.3.3  fill()方法       81
3.3.4  數(shù)組的遍歷         81
3.3.5  TypedArray  82
3.4  函數(shù)        82
3.4.1  參數(shù)的默認(rèn)值    82
3.4.2  Spread運算符    83
3.4.3  箭頭函數(shù)    83
3.4.4  箭頭函數(shù)的陷阱         86
3.5  Set和Map     87
3.5.1  Set和WeakSet   87
3.5.2  Map和WeakMap       88
3.6  Iterator  89
3.6.1  Java中的Iterator       89
3.6.2  ES6中的Iterator         89
3.6.3  Iterator的遍歷  90
3.7  對象        91
3.7.1  新的方法    91
3.7.2  對象的遍歷         92
3.8  類   93
3.8.1  屬性和構(gòu)造函數(shù)         94
3.8.2  類方法         94
3.8.3  __proto__   95
3.8.4  靜態(tài)方法    96
3.9  類的繼承        96
3.9.1  ES5中的繼承      96
3.9.2  ES6中的繼承      98
3.9.3  Node中的類繼承       100
3.10  ES6的模塊化標(biāo)準(zhǔn)       101
3.11  使用babel來轉(zhuǎn)換代碼       102
3.12  小結(jié)      106
3.13  引用資源      106
第4章  書寫異步代碼          107
4.1  異步操作的返回值        108
4.2  組織回調(diào)方法        108
4.2.1  回調(diào)與CPS 108
4.2.2  使用async模塊簡化回調(diào) 110
4.3  使用Promise 112
4.3.1  Promise的歷史  112
4.3.2  Promise是什么  113
4.3.3  ES2015中的Promise 114
4.3.4  Promise的常用API    116
4.3.5  使用Promise組織異步代碼      119
4.3.6  第三方模塊的Promise       120
4.4  Generator,一種過渡方案  122
4.4.1  Generator的使用       122
4.4.2  Generator函數(shù)的執(zhí)行       123
4.4.3  Generator中的錯誤處理  126
4.4.4  用Generator組織異步方法      127
4.4.5  Generator的自動執(zhí)行       128
4.5  回調(diào)的終點——async/await        131
4.5.1  async函數(shù)的概念       131
4.5.2  await關(guān)鍵字       133
4.5.3  在循環(huán)中使用async方法 135
4.5.4  async和await小結(jié)   136
4.5.5  async 函數(shù)的缺點     137
4.6  總結(jié)        138
4.7  引用資源        139
第5章  使用Koa2構(gòu)建Web站點       140
5.1  Node Web框架的發(fā)展歷程  140
5.1.1  Connect       140
5.1.2  Express        141
5.1.3  Koa       141
5.2  內(nèi)容規(guī)劃        142
5.2.1  需求分析    142
5.2.2  技術(shù)選型    142
5.3  Koa入門         143
5.3.1  Koa1.x 與Koa2  143
5.3.2  context對象        144
5.4  middleware    148
5.4.1  中間件的概念    148
5.4.2  next方法    150
5.4.3  中間件的串行調(diào)用    151
5.4.4  一個例子——如何實現(xiàn)超時響應(yīng)    152
5.5  常用服務(wù)的實現(xiàn)   154
5.5.1  靜態(tài)文件服務(wù)    154
5.5.2  路由服務(wù)    155
5.5.3  數(shù)據(jù)存儲    156
5.5.4  文件上傳    160
5.5.5  頁面渲染    163
5.6  構(gòu)建健壯的Web應(yīng)用  165
5.6.1  上傳文件驗證    166
5.6.2  使用Cookie進(jìn)行身份驗證        167
5.6.3  使用Session記錄會話狀態(tài)       170
5.7  使用Redis進(jìn)行持久化          173
5.7.1  Node和Redis的交互         173
5.7.2  CURD操作 174
5.7.3  使用Redis持久化session          176
5.7.4  Redis在Node中的應(yīng)用    179
5.8  Koa源碼剖析         180
5.8.1  Koa的啟動過程 180
5.8.2  中間件的加載    181
5.8.3  listen()方法 184
5.8.4  next()與return next() 185
5.8.5  關(guān)于Can't set headers after they are sent.       186
5.8.6  Context對象的實現(xiàn)  187
5.8.7  Koa的優(yōu)缺點      189
5.9  網(wǎng)站部署        190
5.9.1  本地部署    190
5.9.2  部署在云服務(wù)主機上         191
5.9.3  通過GitHub pages來部署         193
5.10  總結(jié)      194
5.11  引用資源      194
第6章  爬蟲系統(tǒng)的開發(fā)     195
6.1  爬蟲技術(shù)概述        196
6.2  技術(shù)棧簡介   196
6.2.1  request.js    196
6.2.2  cheerio         197
6.2.3  消息隊列    199
6.3  構(gòu)建腳手架   199
6.3.1  選擇目標(biāo)網(wǎng)站    199
6.3.2  分析URL結(jié)構(gòu)    200
6.3.3  構(gòu)建HTTP 請求          200
6.3.4  解析頁面元素    201
6.4  進(jìn)行批量爬取        203
6.4.1  使用遞歸和定時器    203
6.4.2  多進(jìn)程并行         205
6.5  爬蟲架構(gòu)的改進(jìn)   206
6.5.1  異步流程控制    206
6.5.2  回到初的目標(biāo)         206
6.5.3  多進(jìn)程模型的缺陷    208
6.6  進(jìn)程架構(gòu)的改進(jìn)   208
6.6.1  生產(chǎn)/消費模型   208
6.6.2  生產(chǎn)者的實現(xiàn)    209
6.6.3  消費者的實現(xiàn)    211
6.7  反爬蟲處理   213
6.7.1  爬蟲的危害         213
6.7.2  識別一個爬蟲    213
6.7.3  針對爬蟲的處理         214
6.8  總結(jié)        216
6.9  引用資源        216
第7章  測試與調(diào)試     217
7.1  單元測試        218
7.1.1  使用Assert模塊         218
7.1.2  Jasmine        219
7.1.3  Ava.js——面向未來  224
7.2  測試現(xiàn)有代碼        227
7.3  更高維度的測試   228
7.3.1  基準(zhǔn)測試    228
7.3.2  集成測試    229
7.3.3  持續(xù)集成    229
7.4  調(diào)試Node應(yīng)用     231
7.4.1  語言和IDE 232
7.4.2  使用node-inspector   233
7.4.3  使用v8-inspector        234
7.4.4  使用IDE進(jìn)行調(diào)試     236
7.4.5  cpu profiling         237
7.5  總結(jié)        239
7.6  引用資源        239
第8章  Node中的錯誤處理        240
8.1  Error模塊       241
8.2  錯誤處理的幾種方式   241
8.3  被拋棄的Domain  243
8.3.1  Domain模塊簡介       243
8.3.2  Domain原理       247
8.3.3  Domain中間件   249
8.3.4  Domain的缺陷   249
8.4  ES6中的錯誤處理          250
8.4.1  Promise        250
8.4.2  Generator   250
8.4.3  async函數(shù)  251
8.5  Web服務(wù)中的錯誤處理        251
8.5.1  針對每個請求的錯誤處理         251
8.5.2  Express中的錯誤處理       252
8.5.3  Koa中的錯誤處理      252
8.6  防御式編程與Let it crash     253
8.7  總結(jié)        256
8.8  引用資源        256
附錄A  進(jìn)程、線程、協(xié)程 257
A.1  從操作系統(tǒng)說起   257
A.2  Node中的協(xié)程      258
附錄B  Lua語言簡介   259
B.1  Lua中的數(shù)據(jù)類型         259
B.2  定義一個函數(shù)        260
B.3  Lua中的協(xié)程         261
附錄C  從零開發(fā)一個Node Web框架        263
C.1  框架的雛形   263
C.2  框架的完善   264
C.3  總結(jié)        268
附錄D  MongoDB和Redis簡介 269
D.1  NoSQL    269
D.2  MongoDB簡介      269
D.3  Redis簡介     271
附錄E  使用Docker來實現(xiàn)虛擬化     274
E.1  Docker的一些常用命令        274
E.2  Redis服務(wù)      275
附錄F  npm與包管理  277
F.1  package.json常用字段  277
F.2  依賴版本的管理    278
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號