0%

Basics of Node.js - Part 3

Node.js 基礎學習筆記 - Part 3

路徑與 path 模組

在 app.js 內,使用下列兩個語法,可以抓出路徑資料。

1
2
3
4
5
6
7
// 到達檔案的目錄路徑
console.log(__dirname);
// e.g. C:\Users\(User Name)\Desktop\Node.js Project

// 含有檔案的完整路徑
console.log(__filename);
// e.g. C:\Users\(User Name)\Desktop\Node.js Project\app.js

Node.js 的內建路徑模組,提供更多抓取方法,詳細的範例碼如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 載入內建的 path 模組
var path = require("path");

// 抓取到檔案的目錄路徑
console.log(path.dirname("/firstFolder/secondFolder/thirdFolder/target.js"));
// firstFolder/secondFolder/thirdFolder

// 合併前後的兩個路徑,通常後者是更下一層的路徑
console.log(path.join(__dirname, "/xx/yy"));
// C:\Users\(User Name)\Desktop\Node.js Project\xx\yy

// 抓取檔案名稱
console.log(path.basename("/xx/yy/zz.js"));
// zz.js

// 抓副檔名
console.log(path.extname("/xx/yy/zz.js"));
// .js

// 路徑分析 (集大成!)
console.log(path.parse("/xx/yy/zz.js"));
// {root:"/", dir:"/xx/yy", base:"zz.js", ext:".js", name:"zz"}

NPM

NPM 就是 Node.js 用來管理各種套件的工具,全稱為 Node Package Manager。透過 NPM,我們可以很容易取得其他開發者設計好的模組,只要有裝 Node.js,就已經會自動裝好 NPM,若不確定是否安裝完成,可以在終端機環境使用 npm -v 來查詢是否會出現版號。許多好用的套件如: gulp, express, grunt, cordova,都可透過 NPM 進行安裝和管理。

一般來說,只要是使用 Node.js 的應用程式 (專案),一定會有一個描述檔 package.json 用來記錄專案的各種狀態,而要產生這個檔案,首先要把終端機程式的路徑移動到專案資料夾下,並下指令 npm init,接著填入一系列問題的答案:

  • name (套件名稱)
  • version (版本號)
  • description (套件描述)
  • keywords (有關此套件的關鍵字)
  • author (作者)
  • license (授權種類)
  • Documentation of NPM

安裝套件,此處以 Express 為例,在命令提示介面使用以下指令:

  • npm install express --save

安裝完畢後,package.json 中會新增 "dependencies": {"express": "^4.16.2"},如此便可讓其他使用者馬上了解這個專案有幾個模組,版本號為何,而在 node_modules 資料夾中,就是載入的各項套件所需的相依程式檔案。接著,我們已經可以開始使用 Express 套件,在主檔的 app.js 中寫入 var express = require("express") 來載入。

npm install 上的差異

在大型的專案時,可能引用非常多的套件,造成 node_modules 非常肥大,不可進入版控 (git),如果這時有人要協作專案,只需要輸入 npm install 指令,即可讓 NPM 從描述檔的 dependencies 撈出對應的套件安裝。

  • npm install myModule –save
    • 適用於應用程式釋出後,仍會用到的套件
    • 最為推薦的做法,讓協作者能夠順利進入狀況
  • npm install myModule –save -dev
    • 適用於只用來除錯、測試用的套件,如:jsHint, mocha
    • 描述檔的紀錄為: "devDependencies": {"myModule": "^1.12.0"}
  • npm install myModule -g
    • 全域安裝,直接裝在本機端的底層
      • 路徑位置: C:\Users\(User Name)\AppData\Roaming\npm\node_modules
    • 優點是只要安裝一次,多個專案都可直接使用