第一部分 看,一顆流星!
第1章 構建應用程序的更好方式 2
1.1 Meteor簡介 3
1.1.1 Meteor背後的故事 3
1.1.2 Meteor棧 4
1.1.3 同構框架:全棧式JavaScript 5
1.1.4 在瀏覽器中處理:在分布式平颱上運行 7
1.1.5 響應式編程 8
1.2 Meteor的工作原理 10
1.2.1 核心項目 11
1.2.2 Isobuild和CLI工具 13
1.2.3 客戶端代碼和服務器端代碼 14
1.3 優勢和劣勢 15
1.3.1 使用Meteor的好處 16
1.3.2 使用Meteor時的挑戰 17
1.4 創建新的應用程序 19
1.4.1 創建新項目 19
1.4.2 啓動應用 20
1.5 剖析默認項目 21
1.5.1 helloWorld.css 21
1.5.2 helloWorld.html 21
1.5.3 helloWorld.js 22
1.6 總結 24
第2章 我的冰箱:一個響應式遊戲 25
2.1 應用概述 25
2.2 初始設置 26
2.3 創建布局 27
2.3.1 設置樣式 27
2.3.2 添加模闆 29
2.4 嚮數據庫中實時添加內容 31
2.4.1 在數據庫中存儲物品 31
2.4.2 將數據連接到模闆 33
2.4.3 添加一組預定義的物品 35
2.5 把物品放進冰箱裏 36
2.5.1 為項目添加jQuery UI 36
2.5.2 為物品定義拖放目標 37
2.5.3 允許物品被拖動 39
2.6 部署應用到meteor.com並使用它 40
2.7 總結 40
第二部分 3,2,1——撞擊!
第3章 模闆 42
3.1 模闆介紹 42
3.2 使用模闆 44
3.2.1 Blaze引擎 44
3.2.2 組織模闆文件 45
3.3 創建動態HTML模闆 45
3.3.1 雙重和三重大括號標簽
(錶達式) 46
3.3.2 包含標簽(局部模闆) 48
3.3.3 塊標簽 50
3.3.4 輔助函數 53
3.4 處理事件 58
3.4.1 模闆的事件映射 58
3.4.2 事件傳播 59
3.4.3 阻止瀏覽器的默認行為 60
3.5 模闆生命周期 61
3.6 總結 63
第4章 數據 64
4.1 Meteor的默認數據源 66
4.1.1 什麼使數據源具有響應性 67
4.1.2 如何將響應式數據連接到
函數 68
4.2 構建房屋保姆應用 69
4.2.1 設置模闆 71
4.2.2 連接到數據庫並聲明集閤 71
4.3 Session對象 72
4.3.1 Session對象簡介 73
4.3.2 使用Session存儲選定的
下拉值 73
4.3.3 使用Tracker.autorun創建響應性上下文 75
4.4 MongoDB集閤 76
4.4.1 在MongoDB中查詢文檔 77
4.4.2 Meteor的集閤 78
4.4.3 初始化集閤 78
4.4.4 查詢集閤 79
4.4.5 在模闆中顯示集閤數據 80
4.4.6 在集閤中更新數據 83
4.4.7 嚮集閤中插入新數據 85
4.4.8 從集閤中刪除數據 87
4.5 總結 88
第5章 全響應式編輯 89
5.1 響應式編輯的工作流程 89
5.2 響應式前端與DOM操作 90
5.3 在本地集閤中進行臨時更改 94
5.4 在錶單中顯示集閤數據 97
5.5 使用本地集閤進行響應式更新 100
5.5.1 houseForm模闆的事件
映射 101
5.5.2 plantFieldset模闆的事件映射 102
5.6 實現一個簡單的通知係統 105
5.6.1 添加通知模闆 106
5.6.2 添加狀態屬性 106
5.6.3 使用會話變量觸發通知 107
5.7 總結 109
第6章 用戶、認證和權限 110
6.1 將用戶加入應用 111
6.1.1 添加密碼認證 111
6.1.2 注冊和密碼重置 113
6.1.3 設置郵件 117
6.2 使用OAuth認證用戶 120
6.2.1 OAuth介紹 121
6.2.2 整閤Facebook認證 122
6.2.3 集成其他的OAuth提供者 126
6.3 管理用戶權限、角色和組 127
6.4 總結 130
第7章 數據交換 131
7.1 發布和訂閱 132
7.1.1 publish()和subscribe() 133
7.1.2 全局訂閱 134
7.1.3 模闆級訂閱 135
7.1.4 參數化訂閱 136
7.1.5 嚮客戶端獨有的集閤發布匯總數據 138
7.1.6 將聚閤發布變成響應式
數據源 141
7.1.7 通過用戶ID限製數據
可見性 143
7.2 Meteor的方法 145
7.2.1 刪除insecure包 146
7.2.2 使用方法將數據寫入集閤 147
7.3 總結 150
第8章 路由 151
8.1 Web應用中的路由 151
8.2 客戶端路由 154
8.2.1 添加Iron.Router 155
8.2.2 創建第一個路由 155
8.2.3 基於路由定義布局 157
8.2.4 根據路由設置數據上下文 161
8.2.5 使用Iron.Router訂閱
數據 163
8.3 高級的路由方法 166
8.3.1 使用命名路由和鏈接輔助
函數 166
8.3.2 讓活動路由有更好的導航
鏈接 167
8.3.3 等待外部庫加載 168
8.3.4 將路由組織為控製器 169
8.3.5 使用鈎子擴展路由過程 171
8.3.6 創建Iron.Router插件 172
8.4 用於REST API的服務器端路由 173
8.5 總結 175
第9章 包 176
9.1 所有應用的基礎 176
9.2 使用Isopack 177
9.2.1 版本求解器和有語義的
版本號 178
9.2.2 查找包 179
9.2.3 添加和刪除Isopack 182
9.2.4 更新包 183
9.3 使用npm包 183
9.4 創建Isopack 184
9.4.1 創建包 185
9.4.2 聲明包的元數據 186
9.4.3 添加包的功能 188
9.4.4 使用tinytest測試
Isopack 191
9.4.5 發布 194
9.5 總結 195
第10章 高級服務器方法 196
10.1 再次介紹Node.js 196
10.1.1 同步代碼 197
10.1.2 異步代碼 198
10.2 使用縴維的異步功能 200
10.2.1 將多任務引入事件循環 200
10.2.2 使用wrapAsync為縴維
綁定迴調函數 203
10.2.3 為單個客戶端解除方法調用
阻塞 204
10.2.4 使用bindEnvironment
創建縴維 206
10.3 整閤外部API 207
10.3.1 使用HTTP包進行RESTful調用 208
10.3.2 使用同步方法查詢API 208
10.3.3 使用異步方法調用API 209
10.4 將文件上傳到集閤 211
10.5 總結 215
第三部分 走齣隕石坑
第11章 構建和調試 218
11.1 Meteor的構建過程 218
11.1.1 構建階段 220
11.1.2 使用--production選項
運行 223
11.1.3 加載順序 223
11.1.4 通過包添加構建階段 226
11.1.5 添加自定義構建階段 227
11.2 訪問正在運行的應用 229
11.2.1 使用交互式服務器外殼 229
11.2.2 使用node-inspector
進行調試 230
11.3 創建瀏覽器應用 232
11.3.1 使用Meteor.settings
進行應用配置 232
11.3.2 構建Meteor項目 233
11.4 創建移動應用 235
11.4.1 使用Cordova的混閤應用 235
11.4.2 加入移動平颱 236
11.4.3 配置移動應用 238
11.4.4 添加移動功能 240
11.5 總結 242
第12章 開始生産 243
12.1 準備生産 243
12.1.1 使用版本控製 243
12.1.2 功能測試:Velocity框架 245
12.1.3 估算和測試負載 247
12.1.4 服務器管理 249
12.1.5 清單 250
12.2 安裝和部署 250
12.2.1 最簡單的部署:
meteor.com 251
12.2.2 無所不包的主機:雲
供應商 253
12.2.3 最靈活的方式:手動
設置 256
12.3 將各部分連接起來 259
12.3.1 環境變量 260
12.3.2 Meteor和MongoDB的
連接 260
12.4 擴展策略 261
12.4.1 使用冗餘的主動?被動高
可用性 262
12.4.2 單組件部署 263
12.4.3 冗餘和負載均衡 263
12.4.4 絕對可用性 265
12.5 總結 266
附錄A 安裝Meteor 267
附錄B MongoDB剖析 271
附錄C 設置nginx 278
· · · · · · (
收起)