Template Engine - 樣板引擎介紹:

EJS

路由相關(專案路由重構相關):

檔案路徑隨筆

RESTful API 路由設計 - 路由語意化

Express 內建路由器介紹

Mongoose 連線路徑重構

※註: 有關 node 版本切換指令, NVM 操作等請看 這篇

Node.js 基本概念:

Module Wrapper 概念

原本在瀏覽器層上使用 JS(用瀏覽器跑JS檔案) 時,只要是令任何變數或者 function 執行,都是在global scope 執行這些變數,但是在 node.js 環境之下運行時,其實主程式的變數、function 其實是被一個更大的 function scope 包起來的,這個 function scope 就叫做 Module Wrapper,詳細可以參考node.js 的 官方doc,所以現在主程式的結構會變成有點類似這樣的結構:

(function(exports, require, module, __filename, __dirname) {
// Module code actually lives in here
/* -------------被Module Wrapper包在這裏面----------------*/
let name = 'Andrew';

let sayHi = () => {
  console.log('Hi');
}

sayHi();
/* -------------被Module Wrapper包在這裏面----------------*/
});

並且,想像這個程式就是被包在一個 function scope 裡面,我們就可以用這個 function 定義的參數 (exports, require, module, __filename, __dirname) 等等來進行一些特別的互動。

例如用 node.js 來執行上述程式(檔名為 app.js),程式碼為以下:

let name = 'Andrew';

let sayHi = () => {
  console.log('Hi');
}

sayHi();

console.log(__filename);
console.log(__dirname);