Node.js 系列學習日誌#1 - 開始的開始,Node.js 簡介

最近看了些書籍、電子書、網路爬文,一直都想寫個文章做個記錄,以免忘記,彙整一下所看、所聞、所實作的 Node.js 技術,如果有寫不好的地方也請多多指教囉

這些年,Node.js 的議題越來越熱門了,而且快速的開發中,版本的升級也相當快,Node.js 是一個使用當前速度較快的 Javascript 引擎, 運行在服務端的開發平台。它使用了 Google 的 V8 虛擬機(Google Chrome 瀏覽器使用的 Javascript 執行環境),解析與執行 Javascript 語法,你可以想像是在運行 PHP, Puby, Python 一樣的服務端模式,只是根據 Node.js 的做法它不用像 PHP, Python, Ruby on rails 一樣安裝 Apache, Nginx 的 Http 服務器,因為它本身內建就有 Web server 支援。

Node.js 它可以實現 Javascript 沒有完善的功能,比如說實現 Javascript 沒有的模組觀念、操作系統 API、網路通訊的功能。

到底,Node.js 技術現在趨勢如何?我們可以看以下用 Google Trend 網頁分析 Node.js, ruby on rails, angular.js 的熱門搜尋變化,由這張圖看起來,大概是在 2013 年的時候,出現了交叉變化,Node.js 漸漸得越來越多人去了解它。由此圖看得出來,ruby on rails 有著驚人的表現,到這幾年趨於平緩,但我覺得每個語言都有它表現不凡的技術與能力,其他語言也互相學習技術上優點避掉缺點。本系列將學習 Node.js 的應用,一起來探討探討。

趨勢圖

網址在此:

https://www.google.com.tw/trends/explore#q=node.js%2C%20ruby%20on%20rails%2C%20angular.js&cmpt=q

Node.js 它不是

我們都知道學習一套語言會需要知道是什麼樣的一套語言,或是能達到什麼樣的處理,但是更需要反向思考瞭解的是,它不是哪些領域的,或者它不能做到的範圍

  • Node.js 不是一種獨立語言
  • Node.js 不是一個 Javascript 框架 (eg. Rails, Django, CakePHP)
  • Node.js 不是 Client-Side (eg. jQuery, YUI, Extjs)
  • Node.js 不是多執行緒

Node.js 能做些什麼

Node.js 不只是能做一個網站,它可以開發一些:

  • 檔案上傳工具
  • 社群網路的大規模網站
  • Websocket 服務器 (例如:聊天室)
  • 可以處理複雜邏輯的網站
  • 命令行工具
  • 交互式終端程式
  • JSON 的 API
  • Javascript 編輯器
  • 單元測試工具

今天就介紹到這裡,待續…