基于MEAN的全棧開發實例教程1
原文地址 https://blog.udemy.com/node-js-tutorial
感謝來自Udemy的Samantha來信分享
什么是node?
Node是一個開源,跨平臺的用來執行javascript的運行環境。它建立在google的v8引擎上,而v8引擎正是google chrome瀏覽器的執行引擎,能夠快速的將javascript代碼轉為原生的機器碼。
在 Node誕生之前,javascript只能在瀏覽器執行。在2009年,Ryan Dahl使用開源的google v8 javascript引擎來構建node,使它成為一個獨立于瀏覽器之外的javascript運行環境。這使得javascript開發者能夠在服務端 使用javascript來構建大部分的web apis。
題外話:我覺得有兩個技術的普及讓web前端的有了較大的發展。一是混合應用的出現,包括移動端的混合應用如phone gap、ionic等框架和PC端的混合應用如hex、酷狗音樂等,這一技術的誕生讓前端工作從簡單的類似制作ppt一般地展現頁面效果的工作升級成了開 發應用程序的級別;二是node.js的出現,讓js可以運用于服務端開發,讓前端工程師能低門檻地轉成js全棧,通過node.js開發后端又可以與數 據庫連接,讓js開發人員可以參與到web的前端、后端、數據庫整個系統,從而為js工程師提供了一條晉升到web架構師的有利通道,為js工程師插上了 一雙翅膀。
就業市場
近年node非常地受歡迎并且很多大公司(例如IBM,微軟,雅虎,LinkedIn,PayPal),已經開始采用它了。
正如你在下面來自于indeed.com的就業趨勢圖中所見,市場對于node.js開發者的需求正在快速增長。
雖然在數量方面,node開發者的市場需求量不如Ruby on Rails以及很多其它框架那樣,但是我認為這種情況很快會改變。
2013年,從一些官方博客中得知,PayPal從Java轉向了node.js,LinkedIn也從Rails轉向了node。
我喜歡node的原因
我很早就采用了ASP.NET MVC框架,并且使用它進行了數年的web應用開發。關于ASP.NET MVC有一件事讓我很不爽的就是,在語言的編程風格和習慣上,從服務端到客戶端會有較大的轉變。然而C#和javascript都是類似C語言風格的編程 語言,當然用C#來編程還是和javascript有很大的不同。這就是為什么很多ASP.NETweb開發者通常只擅長兩種語言中的一種而不是全部擅 長,所以他們會將自己分類成“后端”或“前端”開發者。同樣的情況發生在Ruby on Rails,PHP,Python 等開發者身上。
采用node的話,你可以在服務端和客戶端同時使用javascript。這意味著更簡潔和更一致的代碼庫以及更少的轉換和映射。當然一個好的javascript開發者能同時編寫服務端和客戶端的代碼將是也是非常牛叉的。
什么時候使用node
node不是一個銀彈。它是專為I/O密集型操作和快速構建可擴展性的實時網絡應用而設計的。比如說一些在線游戲,協作工具,聊天系統等。通過node,你可以用最少的系統資源來服務大量的客戶端,這就是為什么它為高可擴展性而設計。
對 于搭建在類似于MongoDB的文檔數據庫的API服務器,node也是一個非常不錯的選擇。你將文檔數據以json對象的格式存儲在mongo中,然后 通過RESTful API的來操作它們。當從數據庫讀寫數據時,并不需要將JSON和其它類型進行轉換。在本教程中,我們將構建一個node 應用通過以上提到的這種方式。
根結node的結構特點,它應該避免用于CPU密集型操作。本教程中我將從實例開始介紹node而不是從架構深入講解node以及為什么它不適用與CPU密集型應用。這些深入講解的部分我將很快發布在Udemy上。如果你有興趣,請提交到我的郵箱。
mean全棧開發
構建node應用有很多選擇,但mean全棧式框架最近變得非常流行。mean代表的是:
- MongoDB:我盟用來存儲數據的數據庫引擎。
- Express.js:服務器端用來構建web應用程序的框架,類似于ASP.NET MVC或Rails。
- Angular:用來構建web應用的前端框架
- Node.js:javascript運行環境。
通過mean,你可以將文檔數據以json對象的格式存儲在mongo中,然后通過基于 node和express搭建的RESTful API服務器的來操作它們。通過Angular構建客戶端來操作這些API并渲染視圖給用戶。這意味著你在你的代碼中,你將使用單一的統一的語言 (javascript),結果就是讓代碼更加具有一致性和可維護性。另外的好處就是,你將花費更少的時間來處理JSON和其它格式之間的轉換。所有這些 將導致更好的性能和更高的開發效率。
如果你從未使用過MongoDB或者Angular,完全不用擔心。在本教程中我將將會你這些技術的基礎知識。
好了,有了足夠的理論支持。是時候用mean來始構建一個應用了。