Node.js 從無到有 – 做一個簡易部落格(一)

近年最熱門的程式語言我想非 Node.js 所用的 JavaScript 莫屬。過去 JavaScript 只存在於前端網頁的互動介面,現在則是包含伺服器端的程式撰寫也都能用相同的程式語法來寫,我想這世界上大概找不到第二個守備範圍如此廣泛的程式語言了。

最近我也搭上這股風潮,應該說,早些時候就已經開始在接觸並研究這個用在後端的 JavaScript 引擎 – Node.js。

當初會接觸到這個部分的原因與許久之前介紹的 Beaglebone Black 有相當大的關係,因為 Beaglebone Black 內建的 Cloud 9 與 Bone Script 都與 Node.js 密切相關,而我也在此時發現了 Node.js 的美好。關於這部分的內容還請各位移駕到相關文章參考,在本系列文章中就不佔過多篇幅著墨。

Node.js 是什麼?

這是官方網站上的標語

Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world.

大意是說,Node.js 是一個建立在 Chrome V8 JavaScript 引擎上的執行環境。它以事件驅動,並透過非阻塞式 I/O 模型使其更輕量且更有效率。

然後這是來自於維基百科上的解釋

Node.js是一個開放原始碼、跨平台的、可用於伺服器端和網路應用的執行環境。Node.js應用JavaScript語言寫成,在Node.js執行時執行。它支援OS X、Microsoft Windows、Linux、FreeBSD、NonStop、IBM AIX、IBM System z和IBM i。Node.js由Node.js基金會擁有和維護,該基金會與Linux基金會有合作關係。

Node.js提供事件驅動和非阻塞I/O API,可最佳化應用程式的吞吐量和規模。這些技術通常被用於實時應用程式。

Node.js採用Google的V8引擎來執行代碼。Node.js的大部分基本模組都是用JavaScript寫成的。Node.js含有一系列內建模組,使得程式可以作為獨立伺服器執行,從而脫離Apache HTTP Server或IIS執行。

總的來說,Node.js 是一個完全獨立的執行個體,並且實作相當多的網路通訊功能,讓它能夠不用像 ASP 或 PHP 那樣必須倚靠一個專用的 HTTP Server 來建構網路服務。它完全獨立,也因此效能會比過去採用 ASP 或 PHP 等腳本語言的效率來得高上許多。

不過千萬別以為它只能拿來做網路服務,它也是能夠做單純的電腦應用程式,例如 Spotify 就是一個例子。(當然通常還是跟網路服務有關係的應用程式)

Node.js 從無到有這系列文章要說些什麼?

在這系列中,我們將直接以實際的例子來向各位展示如何用 Node.js 建構一個簡易的部落格,我們希望可以藉此讓初學者們可以更容易理解 Node.js 在互動式網站設計上的運用,而不僅僅只是用粗糙並內嵌在 res.send() 中的 HTML 語法來展示它的應用。

因此,你將會在本系列中看到我們如何用 Express.js 等模組來逐步建構出網站,然後用樣板引擎(Template Engine)來將伺服器端要呈現的資料渲染(render)到前端的網頁,沒有內嵌在 res.send() 中的 HTML,也不會看到一長串的 HTML 語法存在於伺服器端的程式。

現在,就讓我們開始建一個簡易的部落格系統,然後打開通向 Node.js 的大門吧!

本系列教學文將嘗試採用 JavaScript ES6 語法進行教學

安裝

所有程式設計的起頭,一定都逃不過安裝這條路,差別只在於安裝了些什麼而已。

Node.js 的安裝相當簡單,你只需要到官方網站上下載最新且符合你慣用的作業系統的版本並依照提示安裝就可以了,不過除了從官方網站下載外,你還有其他的選擇,例如 NVM。

NVM 是 Node.js 的版本管理工具,它可以協助你在同一台電腦中透過指令以不同的 Node.js 版本來測試你所寫的 Node.js 程式。

  • Linux / MAC OS: https://github.com/creationix/nvm
  • Windows: https://github.com/coreybutler/nvm-windows

NVM 原生並不支援 Windows 版本,這裡的 Windows 為其它開發者所貢獻的

準備開始

在安裝好基本的 NodeJS 核心之後,你可以開始使用你所習慣的開發工具來進行開發,以我來說,目前慣用的是 Visual Studio Code

Visual Studio Code

選用這個開發工具有一個很主要的原因是他內建有 NodeJS 的除錯工具,且開啟與執行速度非常流暢,另外又提供為數不少的外掛(Plugin)可以選用。

比起另一套常被提及的 Atom 我更喜歡微軟所支援的這一個輕量級開發工具。

Hello, world!

在這一小節中,我們來與即將踏入的 NodeKS 後端程式世界說聲「哈囉」吧!

新建一個檔案,就叫 hello.js 好了。然後在裡面輸入以下程式碼:

你一定很想問為什麼這麼短,可能你開始懷疑這是假的想要準備關掉網頁,擔心自己業障太重。不不不,我說這是真的!

存檔之後,請在終端機輸入:

你應該會看到寫著

的終端機畫面,如果沒有出現,請檢查一下你的檔名還有 NodeJS 是否有成功安裝。

到此,我們已經完成了最基礎的安裝以及測試,下回我們將開始慢慢引導各位進入 NodeJS 的迷幻世界。

給點回應吧~