Node.js+MongoDB+AngularJS Web開發
內容描述
<內容簡介>
Node.js是一種領先的服務器端編程環境,MongoDB是最流行的NoSQL數據庫,而AngularJS正迅速成為基於MVC的前端開發的領先框架。它們結合在一起使得能夠完全用JavaScript創建從服務器到客戶端瀏覽器的高性能站點和應用程序。
本書為想要將這3種技術整合到全面的有效解決方案的Web程序員提供了完整指南。它簡潔而清晰地介紹了這3種技術,然後迅速轉到構建幾種常見的Web應用程序上面。
讀者將學會使用Node.js和MongoDB來建立更具可擴展性的高性能網站,並利用AngularJS創新的MVC方法構建更有效的網頁和應用程序,以及把這三者結合在一起使用,從而提供卓越的下一代Web解決方案。
<章節目錄>
目 錄
第1部分 引 言
第1章 介紹Node.js-to-AngularJS套件 3
1.1 瞭解基本的Web開發框架 3
1.1.1 用戶 4
1.1.2 瀏覽器 4
1.1.3 Web服務器 6
1.1.4 後端服務 6
1.2 瞭解Node.js-to-AngularJS套件組件 7
1.2.1 Node.js 7
1.2.2 MongoDB 8
1.2.3 Express 9
1.2.4 AngularJS 9
1.3 小結 10
1.4 下一章 10
第2章 JavaScript基礎 11
2.1 定義變量 11
2.2 瞭解JavaScript數據類型 12
2.3 使用運算符 13
2.3.1 算術運算符 13
2.3.2 賦值運算符 14
2.3.3 運用比較和條件運算符 14
2.4 實現循環 16
2.4.1 while循環 17
2.4.2 do/while循環 17
2.4.3 for循環 17
2.4.4 for/in循環 18
2.4.5 中斷循環 19
2.5 創建函數 19
2.5.1 定義函數 20
2.5.2 傳遞變量給函數 20
2.5.3 從函數返回值 20
2.5.4 使用匿名函數 21
2.6 理解變量作用域 22
2.7 使用JavaScript對象 22
2.7.1 使用對象語法 23
2.7.2 創建自定義對象 23
2.7.3 使用原型對象模式 24
2.8 處理字符串 25
2.8.1 合並字符串 26
2.8.2 在字符串中搜索子串 26
2.8.3 在一個字符串中替換單詞 27
2.8.4 將字符串分割成數組 27
2.9 使用數組 27
2.9.1 合並數組 28
2.9.2 遍歷數組 29
2.9.3 將數組轉換為字符串 29
2.9.4 檢查數組是否包含某個條目 29
2.9.5 在數組中添加條目和刪除條目 30
2.10 添加錯誤處理 30
2.10.1 try/catch塊 30
2.10.2 拋出你自己的錯誤 31
2.10.3 使用Finally 31
2.11 小結 32
2.12 下一章 32
第2部分 學習Node.js
第3章 開始使用Node.js 35
3.1 瞭解Node.js 35
3.1.1 誰在使用Node.js 35
3.1.2 Node.js的用途 36
3.2 Node.js安裝 36
3.2.1 縱觀Node.js安裝位置 36
3.2.2 驗證Node.js可執行文件 37
3.2.3 選擇Node.js IDE 37
3.3 使用Node.js包 38
3.3.1 什麽是Node封裝模塊 38
3.3.2 瞭解Node包註冊表 38
3.3.3 使用Node包管理器 38
3.3.4 搜索Node封裝模塊 39
3.3.5 安裝Node封裝模塊 40
3.3.6 使用package.json 41
3.4 創建Node.js應用程序 43
3.4.1 創建Node.js模塊封裝 43
3.4.2 將一個Node.js封裝模塊發布到NPM註冊表 45
3.4.3 在Node.js應用程序中使用Node.js封裝模塊 46
3.5 將數據寫入控制台 47
3.6 小結 49
3.7 下一章 49
第4章 在Node.js中使用事件、監聽器、定時器和回調 51
4.1 瞭解Node.js事件模型 51
4.1.1 比較事件回調和線程模型 51
4.1.2 在Node.js中阻塞I/O 52
4.1.3 會話示例 54
4.2 將工作添加到事件隊列 54
4.2.1 實現定時器 55
4.2.2 使用nextTick來調度工作 58
4.2.3 實現事件發射器和監聽器 59
4.3 實現回調 62
4.3.1 向回調函數傳遞額外的參數 63
4.3.2 在回調中實現閉包 64
4.3.3 鏈式回調 65
4.4 小結 66
4.5 下一章 66
第5章 在Node.js中處理數據I/O 67
5.1 處理JSON 67
5.1.1 把JSON轉換成JavaScript對象 67
5.1.2 把JavaScript對象轉換為JSON 68
5.2 使用Buffer模塊緩沖數據 68
5.2.1 瞭解緩沖數據 69
5.2.2 創建緩沖區 69
5.2.3 寫入緩沖區 70
5.2.4 從緩沖區讀取 71
5.2.5 確定緩沖區長度 72
5.2.6 覆制緩沖區 73
5.2.7 對緩沖區切片 74
5.2.8 拼接緩沖區 75
5.3 使用Stream模塊來傳送數據 76
5.3.1 Readable流 76
5.3.2 Writable流 78
5.3.3 Duplex流 81
5.3.4 Transform流 82
5.3.5 把Readable流用管道輸送到Readable流 84
5.4 用Zlib壓縮與解壓縮數據 85
5.4.1 壓縮和解壓縮緩沖區 85
5.4.2 壓縮/解壓縮流 87
5.5 小結 88
5.6 下一章 88
第6章 從Node.js訪問文件系統 89
6.1 同步和異步文件系統調用 89
6.2 打開和關閉文件 90
6.3 寫入文件 91
6.3.1 簡單文件寫入 91
6.3.2 同步文件寫入 92
6.3.3 異步寫入文件 93
6.3.4 流式文件寫入 95
6.4 讀取文件 96
6.4.1 簡單文件讀取 96
6.4.2 同步文件讀取 97
6.4.3 異步文件讀取 98
6.4.4 流式文件讀取 100
6.5 其他文件系統任務 101
6.5.1 驗證路徑的存在性 101
6.5.2 獲取文件信息 102
6.5.3 列出文件 103
6.5.4 刪除文件 104
6.5.5 截斷文件 105
6.5.6 建立和刪除目錄 105
6.5.7 重命名文件和目錄 106
6.5.8 監視文件更改入 107
6.6 小結 107
6.7 下一章 107
第7章 在Node.js中實現HTTP服務 109
7.1 處理URL 109
7.1.1 瞭解URL對象 110
7.1.2 解析URL組件 111
7.2 處理查詢字符串和表單參數 111
7.3 瞭解請求、響應和服務器對象 112
7.3.1 http.ClientRequest對象 112
7.3.2 http.ServerResponse對象 114
7.3.3 http.IncomingMessage對象 115
7.3.4 HTTP Server對象 116
7.4 在Node.js中實現HTTP客戶端和服務器 118
7.4.1 提供靜態文件服務 118
7.4.2 實現動態的GET服務器 120
7.4.3 實現POST服務器 122
7.4.4 與外部源交互 124
7.5 實現HTTPS服務器和客戶端 127
7.5.1 創建HTTPS客戶端 127
7.5.2 創建HTTPS服務器 129
7.6 小結 129
7.7 下一章 129
第8章 在Node.js中實現套接字服務 131
8.1 瞭解網絡套接字 131
8.2 瞭解TCP服務器和Socket對象 132
8.2.1 net.Socket對象 132
8.2.2 net.Server對象 135
8.3 實現TCP套接字服務器和客戶端 137
8.3.1 實現TCP套接字客戶端 138
8.3.2 實現TCP套接字服務器 140
8.4 實現TLS服務器和客戶端 143
8.4.1 創建TLS套接字客戶端 144
8.4.2 創建TLS套接字服務器 145
8.5 小結 147
8.6 下一章 147
第9章 在Node.js中使用多處理器擴展應用程序 149
9.1 瞭解process模塊 149
9.1.1 瞭解進程I/O管道 149
9.1.2 瞭解進程的信號 150
9.1.3 使用process模塊控制進程執行 150
9.1.4 從process模塊獲取信息 151
9.2 實現子進程 153
9.2.1 瞭解ChildProcess對象 153
9.2.2 通過使用exec()在另一個進程上執行一個系統命令 154
9.2.3 使用execFile()在另一個進程上執行一個可執行文件 156
9.2.4 使用spawn()在另一個Node.js實例中產生一個進程 157
9.2.5 實現子派生 159
9.3 實現進程集群 161
9.3.1 使用cluster模塊 162
9.3.2 瞭解Worker對象 163
9.3.3 實現一個HTTP集群 164
9.4 小結 166
9.5 下一章 166
第10章 使用其他Node.js模塊 167
10.1 使用os模塊 167
10.2 使用util模塊 169
10.2.1 格式化字符串 169
10.2.2 檢查對象類型 170
10.2.3 同步寫入輸出流 170
10.2.4 將JavaScript對象轉換為字符串 170
10.2.5 從其他對象繼承功能 171
10.2.6 使用dns模塊 172
10.3 小結 174
10.4 下一章 174
第3部分 學習MongoDB
第11章 瞭解NoSQL和MongoDB 177
11.1 為什麽要採用NoSQL 177