What is Node.js
Node.js 的開發者 Dyan Dahi 2009年公開 Linux 和 macOS版本的 Node.js,並宣布Node.js是開源軟體,Windows 版本的 Node.js 直到2011年才發佈。
Node Package Manager(npm) 發佈於2010年,npm 的出現,讓軟體人員的 project 可以使用其他人開發的 JavaScript 程式模組(code module)。
Node.js 是 "an asynchronous event driven JavaScript runtime." (https://nodejs.org/en/about/) 。也就是說,Node.js 可以執行 JavaScript 程式。Node.js 使用 Google's Chrome 瀏覽器的 V8 JavaScript engine 打造了一個不需要網頁瀏覽器就可以執行 JavaScript 程式的環境,把從 JavaScript 網頁瀏覽器中解放出來。此外,軟體開發人員還可以用 Node.js 建立開發 command-line 工具或網站應用軟體。
Event driven:
在 Node.js 環境下,執行 JavaScript 程式時,Node.js 一次把所有程式碼都讀進記憶體(memory),這些程式碼中有些是 event-listener 形式的函數(function),這類函數只有在有事件(event)啟動它們時才會執行它們的 callback functions。
Asynchronous:
JavaScript 本身就是 asynchronous,也就是說,程式中的 tasks 不是照順序執行的。