第1章 使用Express + MongoDB搭建多人博客.................. 1
1.1 一個簡單的博客.......................... 2
1.1.1 學習環境......................... 2
1.1.2 快速開始......................... 2
1.1.3 路由控製......................... 7
1.1.4 模闆引擎....................... 11
1.1.5 搭建多人博客............... 13
1.1.6 使用數據庫................... 17
1.1.7 注冊和登錄................... 21
1.1.8 發錶文章....................... 35
1.2 使用Markdown............................... 40
1.3 增加文件上傳功能.................... 42
1.4 實現用戶頁麵和文章頁麵................... 45
1.5 增加編輯與刪除功能................ 49
1.6 實現留言功能............................ 54
1.7 實現分頁功能............................ 57
1.8 增加存檔頁麵............................ 60
1.9 增加標簽和標簽頁麵................ 62
1.10 增加pv統計和留言統計..................... 68
1.11 增加文章檢索功能....................... 70
1.12 增加友情鏈接......................... 72
1.13 增加404頁麵........................... 73
1.14 增加用戶頭像......................... 74
1.15 增加轉載功能和轉載統計............ 77
1.16 增加日誌功能......................... 84
1.17 小結......................................... 85
第2章 使用Express+MongoDB搭建多人博客番外篇.................... 87
2.1 番外篇之一——使用Passport....................... 88
2.2 番外篇之二——部署到Heroku................................... 91
2.3 番外篇之三——使用Mongoose...................... 95
2.4 番外篇之四——使用Async.......................... 98
2.5 番外篇之五——使用KindEditor.................... 102
2.6 番外篇之六——使用Handlebars................ 105
2.7 番外篇之七——使用KindEditor............. 109
第3章 使用Redis搭建漂流瓶服務器..............................111
3.1 初識Redis.................................. 112
3.2 開始漂流瓶之旅............................. 119
3.3 討厭的海星................................... 127
3.4 扔迴海裏......................................... 127
3.5 今天的瓶子已經用完啦.................. 129
3.6 我的瓶子.................................. 131
3.7 女神,我們做朋友吧....................... 134
3.8 部署.......................................... 137
3.9 小結.......................................... 139
3.10 參考文獻............................... 139
第4章 使用Meteor搭建微博網站................ 141
4.1 Meteor簡介............................. 142
4.2 Meteor的安裝與使用................. 142
4.3 快速入門.................................. 145
4.3.1 測試一:客戶端和服務器端執行同一段代碼............ 156
4.3.2 測試二:響應式............. 156
4.3.3 測試三:insecure包................ 157
4.3.4 測試四:autopublish包.............................. 159
4.3.5 測試五:加載順序............... 161
4.4 開始搭建微博網站.................................... 161
4.4.1 開發環境............................ 161
4.4.2 學習目標.......................... 162
4.4.3 創建應...................................... 162
4.5 路由功能....................................... 165
4.6 用戶注冊..................................... 169
4.7 用戶登錄.................................. 173
4.8 發錶微博.................................. 174
4.9 使用Markdown.................................. 176
4.10 部署....................................... 177
4.11 小結....................................... 179
4.12 參考文獻.................................. 179
第5章 使用socket.io+Angular打造單頁應用.......................... 181
5.1 最簡單的聊天室............................ 182
5.1.1 socket.io簡介..................... 182
5.1.2 Angular.js................................. 182
5.1.3 開始新建TechNode目錄.............. 182
5.1.4 express.js服務器.................... 183
5.1.5 安裝Bootstrap和Angular.js........ 185
5.1.6 搭建聊天室......................... 186
5.1.7 開始與好友聊天................ 192
5.2 讓用戶不再匿名........................... 192
5.2.1 添加登錄功能..................... 192
5.2.2 用戶登錄與認證................ 195
5.2.3 socket.io驗證...................... 200
5.2.4 顯示用戶名和在綫用戶列錶................................. 202
5.2.5 我不喜歡你們................................ 211
5.3 提供不同的房間................................ 211
5.3.1 設計房間列錶頁麵............................. 211
5.3.2 添加房間API.......................... 212
5.3.3 實現room的controller................. 213
5.3.4 提供socket的房間API................ 214
5.3.5 登錄後跳轉至房間列錶.............. 215
5.3.6 房間列錶............................. 216
5.3.7 進入單獨的房間........................ 219
5.3.8 讓消息隻在房間內傳遞................... 224
5.3.9 用戶離開房間.......................... 225
5.3.10 壞代碼的味道...................... 227
5.4 架構優化與發布....................... 227
5.4.1 項目結構..................... 228
5.4.2 分拆http和socket服務...................... 229
5.4.3 客戶端緩存................. 231
5.4.4 使用Grunt打包TechNode..... 236
5.4.5 發布TechNode.................. 242
5.4.6 聊天室之旅結束啦.................. 242
第6章 網絡爬蟲與數據操作........................... 243
6.1 學習目標.................................. 244
6.2 網絡爬蟲.................................. 245
6.2.1 相關模塊介紹.................. 246
6.2.2 創建網絡爬蟲前的準備工作................................. 253
6.2.3 獲取文章分類列錶...................... 254
6.2.4 獲取分類下的文章列錶............... 257
6.2.5 獲取文章的內容.................. 262
6.2.6 獲取文章分類下的所有文章................................... 264
6.2.7 將結果保存到數據庫中................... 267
6.2.8 保存文章分類............................. 269
6.2.9 一個完整的爬蟲實例............... 270
6.3 顯示數據庫中的數據.............................. 279
6.3.1 相關模塊介紹......................... 279
6.3.2 創建Web服務器前的工作........................... 280
6.3.3 查詢數據.................................... 281
6.3.4 博客首頁.................................. 283
6.3.5 文章頁麵................................. 285
6.4 自動更新文章數據.................................. 286
6.4.1 相關模塊介紹.............................. 287
6.4.2 準備工作........................... 290
6.4.3 定時執行更新任務............................... 290
6.5 讓程序更穩定地運行................................. 291
6.5.1 處理uncaughtException事件................................ 291
6.5.2 使用pm2來啓動程序.................................. 291
6.5.3 安裝pm2........................................... 292
6.5.4 啓動和停止程序..................... 292
6.6 處理 GBK 編碼的網頁.......................... 292
6.7 小結.......................................... 294
6.8 參考文獻.................................. 294
第7章 Node.js的進程與綫程............................ 295
7.1 Node.js和PHP................................. 296
7.2 單綫程的Node.js............................... 298
7.3 單綫程的優缺點.......................... 298
7.4 多綫程...................................... 300
7.5 多進程...................................... 305
7.6 多進程和多綫程使用的比較................ 310
7.7 總結.......................................... 314
7.8 參考文獻.................................. 315
第8章 發布一個Package............................ 317
8.1 Node.js包解決的問題...................... 318
8.2 創建package.json............................ 318
8.3 設計package的文件目錄..................... 319
8.4 純js包開發............................... 321
8.5 安裝node-gyp......................................... 323
8.6 創建binding.byp............................... 324
8.7 C++插件包開發............................ 324
8.8 包的測試.................................. 330
8.9 跨平颱測試................................. 333
8.10 readme.md......................................... 334
8.11 發布到GitHub............................ 334
8.12 發布到npm............................. 334
8.13 狀態圖標............................... 335
8.14 總結....................................... 336
8.15 參考文獻............................... 337
第9章 Web安全實戰............................... 339
9.1 什麼是Web安全............................ 340
安全的定義和意識........................ 340
9.2 Node.js中的Web安全................ 341
HTTP管道洪水漏洞...................... 341
9.3 SQL注入....................................... 343
9.4 XSS腳本攻擊................................ 345
9.5 CSRF請求僞造............................. 350
9.6 應用層DoS拒絕服務................... 358
9.7 文件路徑漏洞............................... 366
9.8 加密安全.......................................... 372
9.9 小結.............................................. 375
9.10 參考文獻.................................. 375
· · · · · · (
收起)