瞭解Node.js-to-Angular 套件組件

Node.js-to-Angular套件最常見的,並且我們相信也是最好的版本是包括MongoDB、Express、Angular和Node.js 的Node.js-to-Angular 套件。

在Node.js-to-Angular 套件中,Node.js 提供了開發的基礎平臺。後端服務和服務器端腳本都是用Node.js 編寫的。MongoDB 提供了網站的數據存儲,但通過一個MongoDB驅動Node.js 模塊進行訪問。Web 服務器是通過Express 定義的,這也是一個Node.js 的模塊。

在瀏覽器中的視圖使用Angular 框架定義和控制。Angular 是一個MVC 框架,在該框架中的模型由JSON 或JavaScript 對象組成,視圖是HTML/CSS,而控制器由AngularJavaScript 組成。

瞭解Node.js-to-Angular 套件組件

上圖提供了一個基本的圖示,它顯示Node.js-to-Angular 套件是如何適合基本的網站/Web 應用模型的。以下各節描述每種技術,以及它們被選為Node.js-to-Angular 套件的一個組成部分的原因。

1 Node.js

Node.js 是一個基於谷歌的V8 JavaScript 引擎的開發框架。因此,Node.js 代碼是用JavaScript 編寫的,然後由V8 編譯為機器碼供執行。

你可以用Node.js 編寫許多後臺服務、服務器端腳本和任何支持Web 應用程序的功能。Node.js 的好處是它各部分都只包含JavaScript,因此,可以方便地從客戶端腳本提取功能,然後將其放置到服務器端腳本中。此外,Web 服務器可以在Node.js 平臺上作為一個Node.js的模塊直接運行,這意味著它比使用其他軟件,比方說,Apache 連接新服務或服務器端腳本要更容易。

Node.js 之所以是一個出色的啟動框架,有下面幾個原因。

  • JavaScript 端到端:Node.js 的一個最大優點是,它可以讓你用JavaScript 同時編寫服務器端和客戶端腳本。決定把腳本邏輯放置於何處,一直是一件困難的事情。在客戶端放太多東西會使客戶端變得煩瑣而又笨拙,而在服務器端放太多東西又會拖慢Web 應用並使Web 服務器不堪重負。利用Node.js,你可以在客戶端上編寫JavaScript,並輕鬆地在服務器上適應它,反之亦然。而且,客戶端的開發者和服務器的開發者使用同一種語言。
  • 事件驅動的可伸縮性:Node.js 應用不同的邏輯來處理Web 請求。處理Web 請求時,這些請求都在同一個線程上採用一種基本的事件模型被處理,而不是讓多個線程等待處理。這使得Node.js Web 服務器可以用傳統的Web 服務器永遠不能的方式進行擴縮。
  • 可擴展性:Node.js 有很多的追隨者和一個活躍的開發社區。人們正在不斷提供新的模塊來擴展Node.js 的功能。此外,在Node.js 中安裝和包含新的模塊是非常簡單的,你可以在幾分鐘內擴展Node.js 的項目來包含新的功能。
  • 快速執行:建立Node.js,並在其中開發是超級容易的。在短短几分鐘內就可以安裝Node.js,並擁有一個能工作的Web 服務器。

2 MongoDB

MongoDB 是一個靈活的和可伸縮的NoSQL 數據庫。Mongo 這個名字來自單詞“堆積如山”(humongous)。它基於NoSQL 文檔存儲模型,這意味著數據在數據庫中作為JSON 對象形式被存儲,而不是作為關係數據庫中傳統的列和行存儲。

MongoDB 為需要存儲諸如用戶評論、博客或其他項目數據的高流量的網站提供了出色的網站後端存儲,因為它是快速、可伸縮和易於實現的。本書介紹了使用MongoDB 的驅動程序庫從Node.js 訪問MongoDB。

Node.js 支持多種數據庫訪問驅動程序,因此數據很容易用MySQL 或其他數據庫來存儲。但是,下面是MongoDB 真正適合於Node.js 套件的一些原因。

  • 針對文檔:因為MongoDB 是針對文檔的,數據在數據庫中存儲的格式接近於你將在服務器端和客戶端腳本中處理它們的格式。這消除了把數據從行轉換為對象和轉換回來的需要。
  • 高性能:MongoDB 是目前性能最高的數據庫之一。尤其是在現在,當有越來越多的人與網站進行交互時,具有能夠支持大流量的後端是很重要的。
  • 高可用性:MongoDB 的複製模型使得它容易維護可伸縮性,同時又保持高性能。
  • 高可伸縮性:MongoDB 的結構使得它可以很容易地通過在多個服務器上對數據共享實現水平伸縮。
  • 無SQL 注入:MongoDB 是不容易受到SQL 注入攻擊的(也就是向Web 表單或從瀏覽器的其他輸入中輸入SQL 語句,從而危及數據庫的安全性)。這是因為對象被存儲為對象,不使用SQL 字符串。

3 Express

Express 模塊在Node.js-to-Angular 套件中充當Web 服務器。它運行在Node.js 中,使得其很容易配置、實現和控制。Express 模塊擴展了Node.js,它提供幾個關鍵組件來處理Web 請求。這可以讓你用短短几行代碼實現在Node.js 中運行的Web 服務器。

例如,Express 模塊為使用者提供輕鬆設置連接到目的地的路徑(URL)的功能。它也在處理HTTP 請求和響應對象,包括在處理像cookie 和HTTP 標頭的方面提供強大的功能。

以下是Express 有價值的功能的部分列表。

  • 路由管理:Express 可以很容易地定義直接綁在服務器上的Node.js 腳本功能的路由(URL 端點)。
  • 錯誤處理:Express 為“未找到文件”等錯誤提供了內置的錯誤處理。
  • 易於集成:一個Express 服務器可以很容易地在現有的反向代理系統,如Nginx或Varnish 之後實現。這使它可以輕鬆地集成到現有的安全系統。
  • cookie:Express 提供了簡單的cookie 管理。
  • 會話和緩存管理:Express 也能夠進行會話管理和緩存管理。

4 Angular

Angular 是由谷歌開發的客戶端框架。Angular 提供處理用戶在瀏覽器中的輸入,操縱客戶端上的數據,並控制如何在瀏覽器視圖上顯示元素所需要的所有功能。它是用TypeScript 編寫的。Angular 背後的理論是提供一個框架,使得可以很容易地實現使用MVC框架的Web 應用程序。

也可以在Node.js 平臺上使用其他JavaScript 框架,如Backbone、Ember 和Meteor。然而,Angular 擁有在寫作本書之際最好的設計、功能集和軌跡。下面是Angular 的一些好處。

  • 數據綁定:Angular 利用其強大的範圍機制,有一個將數據綁定到HTML 元素的非常乾淨的方法。
  • 可擴展性:Angular 架構允許你輕鬆地擴展語言的各個方面,以提供你自己的自定義實現。
  • 整潔:Angular 迫使你編寫整潔的、合乎邏輯的代碼。
  • 可重用代碼:可擴展性和簡潔代碼的結合,使得易於用Angular 編寫可重用的代碼。事實上,在創建自定義服務的時候,該語言往往迫使你這樣做。
  • 支持:谷歌正把大量資金投入這個項目,這使得它比那些已失敗的類似舉措更具優勢。
  • 兼容性:Angular 基於TypeScript。這使得開始整合Angular 到你的環境和重用在Angular 框架結構內的現有代碼片段都更容易。

本文選自新書《Node.js+MongoDB+Angular Web開發:MEAN全棧權威指南》,電子工業出版社10月出版,本書詳情請點擊下方瞭解更多。

本書始於對每種技術都提供簡潔、清晰的教程,然後迅速轉向建立實用的Web應用程序。你將學習如何使用Node.js和MongoDB構建更具可伸縮性的高性能站點,以及如何利用Angular的創新MVC方法構建更有效的頁面和應用程序,以及如何綜合這三個利器共同實現出色的下一代Web解決方案。


分享到:


相關文章: