node.js 學習筆記

學習網站:http://www.nodejs.net/a/20141016/232139.html;css

筆記:介紹如何利Javascript作爲服務端腳本,經過Nodejs框架web開發。Nodejs框架是基於V8的引擎,是目前速度最快的Javascript引擎。chrome瀏覽器就基於V8,同時打開20-30個網頁都很流暢。Nodejs標準的web開發框架Express,能夠幫助咱們迅速創建web站點,比起PHP的開發效率更高,並且學習曲線更低。很是適合小型網站,個性化網站,咱們本身的Geek網站!html

        和全部人同樣,我也從Web開發開始,而後到包管理,再到應用系統的開發,最後開源本身的Nodejs項目。一路走來,Nodejs已經成爲我作Web項目的標配。我很是願意把原Java、PHP的Web系統向Nodejs遷移,由於1我的能夠很容易的完成10我的的活了。前端

        Node.js的是創建在Chrome的JavaScript的運行時,可方便地構建快速,可擴展的網絡應用程序的平臺。Node.js使用事件驅動,非阻塞I/O模型,輕量、高效,能夠完美地處理時時數據,運行在不一樣的設備上。node

       從我使用體會來講,Node有4大優點:mysql

1. Nodejs基於Javascript語言,不用再單獨新學一門陌生的語言,從而減低了學習的門檻。同時,Javascript語言在Web前端開發中相當重要,特別HTML5的應用必需要使用,因此先後臺統一語言,不只能夠實現程序員的全棧開發,還能夠統一公共類庫,代碼標準化。單憑這一點,Nodejs就已經贏得市場的青睞了。linux

2. Nodejs並無從新開發運行時環境,而是選擇了目前最快的瀏覽器內核V8作爲執行引擎,保證了Nodejs的性能和穩定性。git

3. Nodejs的開發很是高效,並且代碼簡單,得益於Nodejs的單線程機制。而Nodejs的另外一個特色異步編程,讓Nodejs處理IO密集型應用有了明顯的優點。我的感受,用Nodejs比Java作Web開發要高效10倍,比PHP的代碼還要簡單。程序員

4. Nodejs的社區在壯大,不只包的數量在快速增長,並且包的質量也要明顯好於其餘語言的。不少明星級的包,都是簡單而靈巧的,爲了開發者的使用習慣而設計。我最經常使用到的工具包,如socket.io, moment.js, underscore.js, async.js, express.js, bower.js, grunt.js, forever.js…,確實在改變我之前的編程習慣。github

      每一種語言或平臺都有不擅長領域,對於Nodejs來講最不擅長的領域在於CPU和內存的編程操做。web

1. 計算密集型應用,讓Javascript和C去拼計算性能,估計是不可能贏的。

2. 內存控制,讓Javascript和Java比較複雜數據類型定義,也是很困難的。由於Javascript的面向對象是基於JSON的,而Java是直接使用內存結構。因此,經過JSON序列化和反序列的過程控制內存,Javascript就已經輸了。

3. 大內存的應用,因爲V8引擎有內存設計的限制,32位環境中最大堆是1G,64位環境中最大堆也不到2G,若是要一次讀入10G數據,對於Nodejs來講也沒法實現。

4. 靜態服務器,雖然Nodejs的優點在IO密集集應用,可是和Nginx的處理靜態資源仍是有很大的差距。

5. 不須要異步的應用:好比系統管理,自行化腳本等,仍是Python更順手,Nodejs的異步調用可能會給編程帶來一些麻煩。

 15個Nodejs應用場景(先介紹兩個)

咱們已經對Nodejs有了初步的瞭解,接下來看看Nodejs的應用場景。

2.1 Web開發:Express + EJS + Mongoose/MySQL

express 是輕量靈活的Nodejs Web應用框架,它能夠快速地搭建網站。Express框架創建在Nodejs內置的Http模塊上,並對Http模塊再包裝,從而實際Web請求處理的功能。

ejs是一個嵌入的Javascript模板引擎,經過編譯生成HTML的代碼。

mongoose 是MongoDB的對象模型工具,經過Mongoose框架,能夠進行訪問MongoDB的操做。

mysql 是鏈接MySQL數據庫的通訊API,能夠進行訪問MySQL的操做。

一般用Nodejs作Web開發,須要3個框架配合使用,就像Java中的SSH。

2.5 Web博客:Hexo

Hexo 是一個簡單地、輕量地、基於Node的一個靜態博客框架。經過Hexo咱們能夠快速建立本身的博客,僅須要幾條命令就能夠完成。

發佈時,Hexo能夠部署在本身的Node服務器上面,也能夠部署github上面。對於我的用戶來講,部署在github上好處頗多,不只能夠省去服務器的成本,還能夠減小各類系統運維的麻煩事(系統管理、備份、網絡)。因此,基於github的我的站點,正在開始流行起來….

 Nodejs學習路線圖

咱們看到Nodejs已經被廣發地應用在各類的場景了,針對Nodejs的應用場景,咱們應該如何學習Nodejs呢?

如下內容是我整理的文檔和教程,每一個軟件包對應一篇文章,你們能夠根據本身的須要進行閱讀,完整的文章列表,能夠查看:從零開始nodejs系列文章

Nodejs在快速的發展着,軟件包版本升級的很快,文章有運行不通的地方請參考官方文檔解決。我也會不按期更新文章,儘可能保持文章代碼的可用性。

相關文章
相關標籤/搜索