-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Node.js+MongoDB+Angular Web開發:MEAN全棧權威指南

( 簡體 字)
作者:盧濤類別:1. -> 程式設計 -> 網路編程 -> Node.js
   2. -> 程式設計 -> 網路編程 -> AngularJS
譯者:
出版社:電子工業出版社Node.js+MongoDB+Angular Web開發:MEAN全棧權威指南 3dWoo書號: 50083
詢問書籍請說出此書號!

缺書
NT售價: 645

出版日:10/1/2018
頁數:556
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121350962
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

譯者序
隨著互聯網的發展,曾幾何時,“全棧工程師”(Full Stack Engineer)的概念開始興起,這種職位要求應征者對開發堆棧的每個方面都有所掌握,包括服務器、網絡及宿主環境、數據建模、業務邏輯、API/Action/MVC、用戶界面等。過去,這意味著全棧工程師需要面對歸屬不同層次的多種軟件環境和語言,并處理各層之間的交互,這些技術中的任何一種都要耗費大量的精力和時間來學習,因而會面臨很大的挑戰。現在,這種情況已經改變,JavaScript 語言既可用于客戶端開發,又能用于編寫服務器端應用程序,還能方便地與傳統及新型數據庫交互,其中有些代碼還能復用,從而為開發功能豐富的互聯網應用程序創造了良好的條件。
Node.js 是一種領先的服務器端編程環境,它和Express 的結合能夠實現高度可伸縮的動態Web 服務器,并可用JavaScript 編寫Web 服務。
MongoDB 是目前最流行的NoSQL 數據庫,可用于Web 應用程序數據的存儲,并能從Node.js JavaScript 代碼訪問。
Angular 正迅速成為基于MVC 的前端開發的領先框架,它的自定義指令擴展了HTML語言。
這三者整合在一起使得能夠完全用JavaScript 創建從服務器到客戶端瀏覽器的高性能站點和應用程序。
本書提供了將這3 種技術整合成全面的有效解決方案的完整指南。書中簡要而清晰地講述了這3 種技術,然后迅速轉到構建幾種常見的Web 應用程序上面。最后還用多個實際的例子實現了可以與Node.js Web 服務器交互的客戶端服務,為用戶提供了豐富的交互功能的動態瀏覽器視圖,以及為Web 頁面添加用戶身份驗證和嵌套評論等組件。
作者Brad Dayley 是一名高級軟件工程師,精通jQuery、JavaScript、MongoDB,著有多本技術書籍,并在企業應用程序及Web 界面方面具有豐富的開發經驗,本書正是他對實際工作成果的總結。第2 版增加了兩位作者:Brendan Dayley 是經驗豐富的技術書籍作家和Web 軟件工程師;Caleb Dayley 則是計算機科學專業的大學生,他對于設計和開發下一代創新軟件很有興趣。
通過學習本書,讀者將學會如何使用Node.js 和MongoDB 來建立更具可伸縮性的高性能網站,如何利用Angular 創新的MVC 方法構建更有效的網頁和應用程序,以及如何把這三者結合在一起使用,從而提供卓越的下一代Web 解決方案。
李綠霞、盧林、陳克非、李洪秋、張慧珍、李又及、盧曉瑤、陳克翠、湯有四、李陽、劉雯也參與了部分翻譯工作,感謝他們在本書翻譯工作中的辛勤付出。
感謝我們的兒子盧令一,他讀小學三年級了,他努力好學,本書的出版也有他的一份貢獻。
感謝電子工業出版社張春雨編輯對我們的信任,讓我們繼續從事第2 版的翻譯工作。
最后,希望這本書能對讀者有所助益。但由于譯者經驗和水平有限,譯文中難免有不妥之處,懇請讀者批評指正!
盧濤 李穎
2018 年9月18 日


引言

歡迎閱讀本書。本書將引領你進入使用JavaScript 的世界—在你的Web 開發項目中,從服務器和服務到瀏覽器客戶端。本書涵蓋Node.js、MongoDB 和Angular 的實現和集成,而它們是Web 開發世界中新興的一些最令人興奮和創新的技術。
本篇引言包括
? 本書受眾;
? 為什么要閱讀本書;
? 從本書中你將了解到的知識;
? Node.js、MongoDB 和Angular 分別是什么,以及為什么它們都是出色的技術;
? 本書的組織結構。
讓我們開始吧。

本書受眾
本書假定讀者已經對HTML 的基礎知識有所了解,并可以用現代編程語言完成一些編程。讀者如果對JavaScript 有一定了解,將更容易理解本書的內容;但這不是必需的,因為本書確實也涵蓋了JavaScript 的基礎知識。
為什么要閱讀本書
本書將教你如何創建功能強大的互動網站和Web 應用程序—從Web 服務器和服務器上的服務到基于瀏覽器的交互式Web 應用程序。這里所涉及的技術都是開源的,在服務器端組件和瀏覽器端組件上你都可以使用JavaScript。
本書的大多數讀者想要掌握Node.js 和MongoDB,以便可以達到構建高度可伸縮和高性能網站的目的。大多數讀者也想利用Angular 創新的MVC/MVVM(Model-View-Controller/Model-View-View-Model)方法來實現精心設計和結構化的網頁和Web 應用程序。總之,Node.js、MongoDB 和Angular 提供了一個易于實現并完全集成的Web 開發套件,它可以讓你實現神奇的Web 應用程序。
從本書中你將了解到的知識
閱讀本書將幫助你構建現實中的動態網站和Web 應用程序。網站不再由HTML 頁面和集成的圖像及格式化的文本等簡單的靜態內容構成。相反,網站變得更加動態,單個網頁往往充當一個完整的網站或應用程序。
使用Angular 技術,可讓你在網頁中構建邏輯,這可以與Node.js 服務器相互通信并從MongoDB 數據庫獲取必要的數據。Node.js、MongoDB 和Angular 的組合可以讓你實現交互式動態網頁。通過閱讀本書,你將學會如下的事情:
? 如何使用Node.js 和Express 來實現一個高度可伸縮的動態Web 服務器;
? 如何在JavaScript 中創建服務器端的Web 服務;
? 如何在Web 應用程序中實現MongoDB 的數據存儲;
? 如何用Node.js JavaScript 代碼實現對MongoDB 的訪問和交互;
? 如何定義靜態和動態Web 路由并實現服務器端腳本來支持它們;
? 如何定義擴展HTML 語言的自定義Angular 組件;
? 如何實現可以與Node.js Web 服務器交互的客戶端服務;
? 如何建立提供豐富的用戶交互的動態瀏覽器視圖;
? 如何將嵌套的組件添加到網頁;
? 如何實現Angular 路由來管理客戶端應用視圖之間的轉移。
何為Node.js
Node.js,有時被直接稱作Node,是基于谷歌的V8 JavaScript 引擎的開發框架。你可以用JavaScript 編寫Node.js 代碼,然后V8 將它編譯為要執行的機器代碼。你可以用Node.js編寫出大部分,或者甚至全部的服務器端代碼,包括Web 服務器、服務器端腳本和任何支持Web 應用程序的功能。Web 服務器和支持Web 應用程序的腳本在同一個服務器端應用程序中運行這一事實,允許在Web 服務器和腳本之間有更緊密的集成。
Node.js 之所以是一個出色的框架,基于下面幾個原因。
? JavaScript 端到端:Node.js 的一個最大優點是,它可以讓你用JavaScript 同時編寫服務器端和客戶端腳本。在決定把邏輯放入客戶端腳本還是服務器端腳本方面一直有困難。利用Node.js,你可以在客戶端上編寫JavaScript,并輕松地在服務器上適應它,反之亦然。另外一個好處是,客戶端的開發者和服務器的開發者使用同一種語言。
? 事件驅動的可伸縮性:Node.js 應用獨特的邏輯來處理Web 請求。使用Node.js,不是讓多個線程等待處理Web 請求,而是采用一種基本的事件模型在同一個線程上處理它們。這使得Node.js Web 服務器可以用傳統的Web 服務器不能做到的方式擴縮。
? 可擴展性:Node.js 有很多的追隨者和一個活躍的開發社區。人們正在不斷提供新的模塊來擴展Node.js 的功能。此外,在Node.js 中易于安裝和包含新的模塊,你可以在幾分鐘內擴展Node.js 的項目來包含新的功能。
? 快速執行:建立Node.js,并在其中開發是超級容易的。在短短幾分鐘內就可以安裝Node.js,并擁有一個能工作的Web 服務器。
何為MongoDB
MongoDB 是一個靈活的可伸縮的NoSQL 數據庫。Mongo 這個名字來自單詞“堆積如山”(humongous),用來強調MongoDB 提供的可伸縮性和性能。MongoDB 為需要存儲諸如用戶評論、博客或其他條目數據的高流量的網站提供了出色的網站后端存儲,因為它可快速伸縮并易于實現。
下面是MongoDB 真正適合于Node.js 套件的一些原因。
? 針對文檔:因為MongoDB 是針對文檔的,所以數據在數據庫中存儲的格式,非常接近于你在服務器端和客戶端腳本中處理它們的格式。這消除了把數據從行轉換為對象和轉換回來的需要。
? 高性能:MongoDB 是目前性能最高的數據庫之一。尤其是在現在,有越來越多的人與網站進行交互,具有能夠支持大流量的后端是很重要的。
? 高可用性:MongoDB 的復制模型使得它易于維護可伸縮性,同時又保持高性能。
? 高可伸縮性:MongoDB 的結構使得它易于通過在多個服務器上對數據共享實現水平伸縮。
? 無SQL 注入:MongoDB 是不容易受到SQL 注入攻擊的(也就是向Web 表單或從瀏覽器的其他輸入中輸入SQL 語句,從而危及數據庫的安全性)。這是因為對象被存儲為對象,不使用SQL 字符串。
何為Angular
Angular 是由谷歌開發的JavaScript 客戶端框架。Angular 背后的理論是提供一個框架,以便可以很容易地使用MVC/MVVM 框架實現設計良好的結構化網頁和應用程序。
Angular 提供了在瀏覽器中處理用戶輸入、操縱客戶端上的數據及控制元素如何在瀏覽器界面上顯示的功能。下面是Angular 具有的一些優勢。
? 數據綁定:Angular 利用其強大的范圍機制,有一個將數據綁定到HTML 元素的簡潔的方法。
? 可擴展性:Angular 架構允許你輕松地擴展語言的各個方面,以提供你自己的自定義實現。
? 整潔:Angular 迫使你編寫整潔的、合乎邏輯的代碼。
? 可重用代碼:可擴展性和簡潔代碼的結合,使得易于用Angular 編寫可重用的代碼。事實上,在創建自定義服務的時候,此語言往往迫使你這樣做。
? 支持:谷歌正把大量資金投入這個項目,這使得它比那些已失敗的類似舉措更具優勢。
? 兼容性:Angular 基于JavaScript 并與JavaScript 標準有著密切的聯系。這使得更易于將Angular 整合到你的環境和重用在Angular 框架結構內的現有代碼片段。
本書的組織結構
本書分為6 個主要部分:
? 第1 部分“入門”概述了Node.js、MongoDB 和Angular 之間的相互作用,并對這3 種產品如何形成一個完整的Web 開發套件進行了概述。第2 章是JavaScript 的初步介紹,它提供了實現Node.js 和Angular 代碼時,你需要用到的JavaScript 語言的基本知識。
? 第2 部分“學習Node.js”涵蓋了Node.js 的語言平臺,從安裝到實現Node.js 模塊。這部分將向你提供你需要的基本框架,以實現自定義Node.js 模塊以及Web 服務器和服務器端腳本。
? 第3 部分“學習MongoDB”涵蓋了MongoDB 數據庫,從安裝到與Node.js 應用程序的集成。本部分將討論如何規劃數據模型,以滿足你的應用程序需求,以及如何從Node.js 應用程序對MongoDB 進行訪問和交互。
? 第4 部分“使用Express 使生活更輕松”討論了Node.js 的Express 模塊以及如何利用它作為應用程序的Web 服務器。你將學習如何為數據設置動態和靜態路由,以及如何實現安全性、緩存和Web 服務器的其他基本功能。
? 第5 部分“學習Angular”涵蓋了Angular、框架的架構,以及如何將它集成到Node.js 套件。本部分介紹了創建自定義的HTML 組件和在瀏覽器中利用的客戶端服務。
? 第6 部分“高級Angular”涵蓋了更高級的Angular 開發,比如構建自定義指令和自定義服務。本部分還介紹了如何使用Angular 的內置HTTP 和路由服務。最后講解了一些補充的富UI 示例,比如拖放組件的構建與動畫的實現。
結束語
我們希望你和我們一樣喜歡學習Node.js、MongoDB 和Angular。它們都是出色而創新的技術,使用起來充滿樂趣。很快,你就可以加入這一龐大的Web 開發人員之列,和他們一起使用Node.js-to-Angular Web 套件來建立交互式網站和Web 應用程序了。享受這本書吧!
內容簡介:

Node.js是領先的服務器端編程環境,MongoDB是最受歡迎的NoSQL數據庫,而Angular是基于MVC的前端開發的領先框架。它們一起提供了一個易于實現的完全集成的Web開發棧,可以讓Web程序員創建從服務器到客戶端完全以JavaScript構建的高性能站點和應用程序。針對Angular 2,Angular 4和后續版本進行了更新,這個新版本的Node.js,MongoDB和Angular Web Development將展示如何將這三種技術整合到完整的工作解決方案中。它首先介紹每種技術的簡明明了的教程,然后快速地開始構建常見的Web應用程序。
目錄:

引 言 1
第1 部分 入 門
第1 章 介紹Node.js-to-Angular 套件 9
1.1 了解基本的Web 開發框架 9
1.1.1 用戶 10
1.1.2 瀏覽器 10
1.1.3 Web 服務器 12
1.1.4 后端服務 12
1.2 了解Node.js-to-Angular 套件組件 13
1.2.1 Node.js 13
1.2.2 MongoDB 14
1.2.3 Express 15
1.2.4 Angular 15
1.3 小結 16
1.4 下一章 16
第2 章 JavaScript 基礎 17
2.1 定義變量 17
2.2 了解JavaScript 數據類型 18
2.3 使用運算符 19
2.3.1 算術運算符 19
2.3.2 賦值運算符 20
VIII 目 錄
2.3.3 運用比較和條件運算符 20
2.4 實現循環 22
2.4.1 while 循環 23
2.4.2 do/while 循環 23
2.4.3 for 循環 23
2.4.4 for/in 循環 24
2.4.5 中斷循環 25
2.5 創建函數 26
2.5.1 定義函數 26
2.5.2 將變量傳遞給函數 26
2.5.3 從函數返回值 .. 27
2.5.4 使用匿名函數 .. 27
2.6 理解變量作用域 .. 28
2.7 使用JavaScript 對象 28
2.7.1 使用對象語法 29
2.7.2 創建自定義對象 30
2.7.3 使用原型對象模式 30
2.8 處理字符串 31
2.8.1 合并字符串 32
2.8.2 在字符串中搜索子串 33
2.8.3 在一個字符串中替換單詞 33
2.8.4 將字符串分割成數組 33
2.9 使用數組 33
2.9.1 合并數組 35
2.9.2 遍歷數組 35
2.9.3 將數組轉換為字符串 35
2.9.4 檢查數組是否包含某個條目 36
2.9.5 在數組中添加條目和刪除條目 36
2.10 添加錯誤處理 36
2.10.1 try/catch 塊 37
2.10.2 拋出你自己的錯誤 37
2.10.3 使用finally 38
2.11 小結 38
2.12 下一章 38
第2 部分 學習Node.js
第3 章 開始使用Node.js 41
3.1 了解Node.js 41
3.1.1 誰在使用Node.js 41
3.1.2 Node.js 的用途 42
3.1.3 Node.js 包含的內容 42
3.2 Node.js 安裝 44
3.2.1 縱觀Node.js 安裝位置 44
3.2.2 驗證Node.js 可執行文件 44
3.2.3 選擇Node.js IDE 45
3.3 使用Node 包 45
3.3.1 什么是Node 封裝模塊 45
3.3.2 了解Node 包注冊表 46
3.3.3 使用Node 包管理器 46
3.3.4 搜索Node 封裝模塊 47
3.3.5 安裝Node 封裝模塊 48
3.3.6 使用package.json 49
3.4 創建Node.js 應用程序 50
3.4.1 創建Node.js 模塊封裝 51
3.4.2 將一個Node.js 封裝模塊發布到NPM 注冊表 52
3.4.3 在Node.js 應用程序中使用Node.js 封裝模塊 54
3.5 將數據寫入控制臺 55
3.6 小結 56
3.7 下一章 56
第4 章 在Node.js 中使用事件、監聽器、定時器和回調 57
4.1 了解Node.js 事件模型 57
4.1.1 比較事件回調和線程模型 57
4.1.2 在Node.js 中阻塞I/O 58
4.1.3 會話示例 60
4.2 將工作添加到事件隊列 60
4.2.1 實現定時器 61
4.2.2 使用nextTick 來調度工作 64
4.2.3 實現事件發射器和監聽器 65
4.3 實現回調 68
4.3.1 向回調函數傳遞額外的參數 69
4.3.2 在回調中實現閉包 70
4.3.3 鏈式回調 71
4.4 小結 72
4.5 下一章 72
第5 章 在Node.js 中處理數據I/O 73
5.1 處理JSON 73
5.1.1 把JSON 轉換成JavaScript 對象 73
5.1.2 把JavaScript 對象轉換為JSON 74
5.2 使用Buffer 模塊緩沖數據 74
5.2.1 了解緩沖數據 75
5.2.2 創建緩沖區 75
5.2.3 寫入緩沖區 76
5.2.4 從緩沖區讀取 77
5.2.5 確定緩沖區的長度 78
5.2.6 復制緩沖區 78
5.2.7 對緩沖區切片 80
5.2.8 拼接緩沖區 80
5.3 使用Stream 模塊來傳送數據 81
5.3.1 Readable 流 82
5.3.2 Writable 流 84
5.3.3 Duplex 流 86
5.3.4 Transform 流 88
5.3.5 把Readable 流用管道輸送到Writable 流 89
5.4 用Zlib 壓縮與解壓縮數據 91
5.4.1 壓縮和解壓縮緩沖區 91
5.4.2 壓縮/解壓縮流 93
5.5 小結 93
5.6 下一章 93
第6 章 從Node.js 訪問文件系統 95
6.1 同步和異步文件系統調用 95
6.2 打開和關閉文件 96
6.3 寫入文件 97
6.3.1 簡單文件寫入 97
6.3.2 同步文件寫入 98
6.3.3 異步寫入文件 99
6.3.4 流式文件寫入 101
6.4 讀取文件 102
6.4.1 簡單文件讀取 102
6.4.2 同步文件讀取 103
6.4.3 異步文件讀取 104
6.4.4 流式文件讀取 105
6.5 其他文件系統任務 106
6.5.1 驗證路徑的存在性 106
6.5.2 獲取文件信息 107
6.5.3 列出文件 108
6.5.4 刪除文件 110
6.5.5 截斷文件 110
6.5.6 建立和刪除目錄 111
6.5.7 重命名文件和目錄 112
6.5.8 監視文件更改 112
6.6 小結 .. 113
6.7 下一章 113
第7 章 在Node.js 中實現HTTP 服務 115
7.1 處理URL 115
7.1.1 了解URL 對象 116
7.1.2 解析URL 組件 117
7.2 處理查詢字符串和表單參數 117
7.3 了解請求、響應和服務器對象 118
7.3.1 http.ClientRequest 對象 118
7.3.2 http.ServerResponse 對象 121
7.3.3 http.IncomingMessage 對象 122
7.3.4 http.Server 對象 122
7.4 在Node.js 中實現HTTP 客戶端和服務器 124
7.4.1 提供靜態文件服務 124
7.4.2 實現動態的GET 服務器 126
7.4.3 實現POST 服務器 128
7.4.4 與外部源交互 131
7.5 實現HTTPS 服務器和客戶端 133
7.5.1 創建HTTPS 客戶端 134
7.5.2 創建HTTPS 服務器 135
7.6 小結 136
7.7 下一章 136
第8 章 在Node.js 中實現套接字服務 137
8.1 了解網絡套接字 137
8.2 了解TCP 服務器和Socket 對象 138
8.2.1 net.Socket 對象 138
8.2.2 net.Server 對象 141
8.3 實現TCP 套接字服務器和客戶端 144
8.3.1 實現TCP 套接字客戶端 144
8.3.2 實現TCP 套接字服務器 146
8.4 實現TLS 服務器和客戶端 149
8.4.1 創建TLS 套接字客戶端 150
8.4.2 創建TLS 套接字服務器 151
8.5 小結153
8.6 下一章 153
第9 章 在Node.js 中使用多處理器擴展應用程序 155
9.1 了解process 模塊 155
9.1.1 了解進程I/O 管道 155
9.1.2 了解進程的信號 156
9.1.3 使用process 模塊控制進程執行 156
9.1.4 從process 模塊獲取信息 157
9.2 實現子進程 159
9.2.1 了解ChildProcess 對象 159
9.2.2 使用exec()在另一個進程上執行一個系統命令 161
9.2.3 使用execFile()在另一個進程上執行一個可執行文件 162
9.2.4 使用spawn()在另一個Node.js 實例中產生一個進程 163
9.2.5 實現子派生 165
9.3 實現進程集群 167
9.3.1 使用cluster 模塊 168
9.3.2 了解Worker 對象 169
9.3.3 實現一個HTTP 集群 170
9.4 小結 172
9.5 下一章 172
第10 章 使用其他Node.js 模塊 173
10.1 使用os 模塊 173
10.2 使用util 模塊 175
10.2.1 格式化字符串 175
10.2.2 檢查對象類型 176
10.2.3 將JavaScript 對象轉換為字符串 176
10.2.4 從其他對象繼承功能 177
10.3 使用dns 模塊 178
10.4 使用crypto 模塊 180
10.5 其他Node 模塊和對象 181
10.6 小結 182
10.7 下一章 182
第3 部分 學習MongoDB
第11 章 了解NoSQL 和MongoDB 185
11.1 為什么要采用NoSQL 185
11.2 了解MongoDB 186
11.2.1 理解集合 186
11.2.2 了解文檔 186
11.3 MongoDB 的數據類型 187
11.4 規劃你的數據模型 188
11.4.1 使用文檔引用來規范化數據 189
11.4.2 使用嵌入式文檔反規范化數據 190
11.4.3 使用封頂集合 191
11.4.4 了解原子寫操作 192
11.4.5 考慮文件增長 192
11.4.6 識別索引、分片和復制的機會 193
11.4.7 大集合與大量集合的對比 193
11.4.8 決定數據生命周期 193
11.4.9 考慮數據的可用性和性能 194
11.5 小結 194
11.6 下一章 194
第12 章 MongoDB 入門 195
12.1 構建MongoDB 的環境 195
12.1.1 MongoDB 的安裝 195
12.1.2 啟動MongoDB 196
12.1.3 停止MongoDB 197
12.1.4 從shell 客戶端訪問MongoDB 197
12.2 管理用戶賬戶 200
12.2.1 列出用戶 200
12.2.2 創建用戶賬戶 201
12.2.3 刪除用戶 202
12.3 配置訪問控制 203
12.3.1 創建用戶管理員賬戶 203
12.3.2 打開身份驗證 . 204
12.3.3 創建數據庫管理員賬戶 204
12.4 管理數據庫 205
12.4.1 顯示數據庫清單 205
12.4.2 切換當前數據庫 205
12.4.3 創建數據庫 206
12.4.4 刪除數據庫 206
12.4.5 復制數據庫 207
12.5 管理集合 207
12.5.1 顯示數據庫中的集合列表 207
12.5.2 創建集合 208
12.5.3 刪除集合 208
12.5.4 在集合中查找文檔 209
12.5.5 將文檔添加到集合中 210
12.5.6 從集合中刪除文檔 210
12.5.7 更新集合中的文檔 211
12.6 小結 212
12.7 下一章 212
第13 章 MongoDB 和Node.js 入門 213
13.1 把MongoDB 的驅動程序添加到Node.js 213
13.2 從Node.js 連接到MongoDB 213
13.2.1 了解寫入關注 214
13.2.2 通過MongoClient 對象從Node.js 連接到MongoDB .214
13.3 了解用在MongoDB Node.js 驅動程序中的對象 218
13.3.1 了解Db 對象 218
13.3.2 了解Admin 對象 220
13.3.3 了解Collection 對象 220
13.3.4 了解Cursor 對象 222
13.4 訪問和操作數據庫 223
13.4.1 列出數據庫 223
13.4.2 創建數據庫 223
13.4.3 刪除數據庫 224
13.4.4 創建、列出和刪除數據庫實例 224
13.4.5 獲取MongoDB 服務器的狀態 226
13.5 訪問和操作集合 227
13.5.1 列出集合 227
13.5.2 創建集合 227
13.5.3 刪除集合 227
13.5.4 創建、列出和刪除集合的示例 228
13.5.5 獲取集合信息 229
13.6 小結 230
13.7 下一章 230
第14 章 從Node.js 操作MongoDB 文檔 231
14.1 了解數據庫更改選項 231
14.2 了解數據庫更新運算符 232
14.3 將文檔添加到集合 233
14.4 從集合獲取文檔 235
14.5 更新集合中的文檔 237
14.6 原子地修改文檔的集合 239
14.7 保存集合中的文檔 241
14.8 使用upsert 往集合中插入文檔 242
14.9 從集合中刪除文檔 244
14.10 從集合中刪除單個文檔 246
14.11 小結 248
14.12 下一章 248
第15 章 從Node.js 訪問MongoDB 249
15.1 介紹數據集 249
15.2 了解query 對象 250
15.3 了解查詢options 對象 251
15.4 查找特定文檔集合 252
15.5 清點文檔數量 255
15.6 對結果集進行限制 257
15.6.1 按大小限制結果 257
15.6.2 限制對象返回的字段 258
15.6.3 對結果進行分頁 260
15.7 對結果集進行排序 262
15.8 查找不同的字段值 263
15.9 對結果進行分組 265
15.10 通過聚合結果來應用MapReduce 269
15.10.1 了解aggregate()方法 269
15.10.2 使用聚合框架運算符 270
15.10.3 實現聚合表達式運算符 272
15.10.4 聚合的例子 273
15.11 小結 274
15.12 下一章 274
第16 章 利用Mongoose 來使用結構化模式與驗證 275
16.1 了解Mongoose 275
16.2 利用Mongoose 連接到MongoDB 數據庫 276
16.3 定義模式 278
16.3.1 了解路徑 278
16.3.2 創建一個模式定義 278
16.3.3 把索引添加到一個模式 279
16.3.4 實現字段的唯一性 280
16.3.5 強制字段的必需性 280
16.3.6 往Schema 模型添加方法 280
16.3.7 在words 數據庫上實現模式 281
16.4 編譯模型 282
16.5 了解Query 對象 282
16.5.1 設置查詢數據庫操作 283
16.5.2 設置查詢數據庫操作選項 284
16.5.3 設置查詢運算符 285
16.6 了解Document 對象 287
16.7 利用Mongoose 查找文檔 288
16.8 利用Mongoose 添加文檔 290
16.9 利用Mongoose 更新文檔 292
16.9.1 保存文檔更改 292
16.9.2 更新單個文檔 293
16.9.3 更新多個文檔 295
16.10 利用Mongoose 刪除文檔 296
16.10.1 刪除單個文檔 296
16.10.2 刪除多個文檔 298
16.11 利用Mongoose 聚合文檔 299
16.12 使用驗證框架 302
16.13 實現中間件函數 304
16.14 小結 306
16.15 下一章 307
第17 章 高級MongoDB 概念 309
17.1 添加索引 309
17.2 使用封頂集合 311
17.3 應用復制 312
17.3.1 復制策略 314
17.3.2 部署一個副本集 314
17.4 實施分片 315
17.4.1 分片服務器類型 316
17.4.2 選擇一個分片鍵 317
17.4.3 選擇一種分區方法 318
17.4.4 部署一個分片的MongoDB 集群 319
17.5 修復MongoDB 數據庫 322
17.6 備份MongoDB 323
17.7 小結 324
17.8 下一章 324
第4 部分 使用Express 使生活更輕松
第18 章 在Node.js 中實現Express 327
18.1 Express 入門 327
18.1.1 配置Express 設置 327
18.1.2 啟動Express 服務器 328
18.2 配置路由 329
18.2.1 實現路由 329
18.2.2 在路由中應用參數 330
18.3 使用Request 對象 334
18.4 使用Response 對象 336
18.4.1 設置標頭 336
18.4.2 設置狀態 337
18.4.3 發送響應 337
18.4.4 發送JSON 響應 339
18.4.5 發送文件 341
18.4.6 發送下載響應 342
18.4.7 重定向響應 343
18.5 實現一個模板引擎 343
18.5.1 定義引擎 344
18.5.2 加入本地對象 345
18.5.3 創建模板 345
18.5.4 在響應中呈現模板 347
18.6 小結 348
18.7 下一章 348
第19 章 實現Express 中間件 349
19.1 了解中間件 349
19.1.1 在全局范圍內把中間件分配給某個路徑 350
19.1.2 把中間件分配到單個路由 350
19.1.3 添加多個中間件函數 351
19.2 使用query 中間件 351
19.3 提供靜態文件服務 351
19.4 處理POST 正文數據 353
19.5 發送和接收cookie 354
19.6 實現會話 356
19.7 應用基本的HTTP 身份驗證 358
19.8 實現會話身份驗證 359
19.9 創建自定義中間件 362
19.10 小結 363
19.11 下一章 364
第5 部分 學習Angular
第20 章 TypeScript 入門 367
20.1 學習不同的類型 367
20.2 了解接口 369
20.3 實現類 370
20.4 實現模塊 371
20.5 理解函數 372
20.6 小結 373
20.7 下一章 373
第21 章 Angular 入門 375
21.1 為什么選擇Angular 375
21.2 了解Angular 375
21.2.1 模塊 376
21.2.2 指令 376
21.2.3 數據綁定 376
21.2.4 依賴注入 376
21.2.5 服務 377
21.3 職責分離 377
21.4 為你的環境添加Angular 377
21.5 使用Angular CLI 378
21.6 創建一個基本的Angular 應用程序 379
21.6.1 創建你的第一個Angular 應用程序 380
21.6.2 了解和使用NgModule 381
21.6.3 創建Angular 引導程序 382
21.7 小結 386
21.8 下一章 386
第22 章 Angular 組件 387
22.1 組件配置 387
22.2 建立模板 388
22.3 使用構造函數 391
22.4 使用外部模板 392
22.5 注入指令 394
22.5.1 使用依賴注入構建嵌套組件 395
22.5.2 通過依賴注入傳遞數據 397
22.5.3 創建使用輸入的Angular 應用程序 397
22.6 小結 399
22.7 下一章 399
第23 章 表達式 401
23.1 使用表達式 401
23.1.1 使用基本表達式 402
23.1.2 在表達式中與Component 類交互 404
23.1.3 在Angular 表達式中使用TypeScript 405
23.2 使用管道 408
23.3 建立一個自定義管道 412
23.4 小結 414
23.5 下一章 414
第24 章 數據綁定 415
24.1 了解數據綁定 415
24.1.1 插值 415
24.1.2 性質綁定 417
24.1.3 屬性綁定 419
24.1.4 類綁定 419
24.1.5 樣式綁定 420
24.1.6 事件綁定 421
24.1.7 雙向綁定 424
24.2 小結 426
24.3 下一章 426
第25 章 內置指令 427
25.1 了解指令 427
25.2 使用內置指令 427
25.2.1 組件指令 428
25.2.2 結構指令 428
25.2.3 屬性指令 431
25.3 小結 434
25.4 下一章 434
第6 部分 高級Angular
第26 章 自定義指令 437
26.1 創建自定義屬性指令 437
26.2 使用組件創建自定義指令 440
26.3 小結 444
26.4 下一章 444
第27 章 事件和變更檢測 445
27.1 使用瀏覽器事件 445
27.2 發出自定義事件 446
27.2.1 將自定義事件發送到父組件層次結構 . 446
27.2.2 使用監聽器處理自定義事件 . 446
27.2.3 在嵌套組件中實現自定義事件 446
27.2.4 從子組件中刪除父組件中的數據 448
27.3 使用可觀察物 452
27.3.1 創建一個可觀察物對象 452
27.3.2 利用可觀察物觀察數據變化 453
27.4 小結 455
27.5 下一章 456
第28 章 在Web 應用程序中實現Angular 服務 457
28.1 了解Angular 服務 457
28.2 使用內置的服務 457
28.3 使用http 服務發送HTTP GET 和PUT 請求 458
28.3.1 配置HTTP 請求 459
28.3.2 實現HTTP 響應回調函數 459
28.3.3 實現一個簡單的JSON 文件并使用http 服務來訪問它 460
28.4 使用http 服務實現一個簡單的模擬服務器 463
28.5 使用router 服務更改視圖 474
28.5.1 在Angular 中使用routes 475
28.5.2 實現一個簡單的路由 476
28.6 用導航欄實現路由 479
28.7 實現帶參數的路由 484
28.8 小結 488
28.9 下一章 488
第29 章 創建自己的自定義Angular 服務 489
29.1 將自定義服務集成到Angular 應用程序中 489
29.2 實現一個使用常量數據服務的簡單應用程序 490
29.3 實現數據轉換服務 492
29.4 實現可變數據服務 496
29.5 實現一個返回promise 的服務 500
29.6 實現共享服務 501
29.7 小結 508
29.8 下一章 508
第30 章 玩轉Angular 509
30.1 實現使用動畫服務的Angular 應用程序 509
30.2 實現放大圖像的Angular 應用程序 514
30.3 實現啟用拖放的Angular 應用程序 517
30.4 實現星級評級的Angular 組件 522
30.5 小結 530
序: