2024-12-07 import { v4 as uuidv4 } from ''uuid'';
2024-12-07 import { v4 as uuidv4 } from ‘’uuid’’;
要使用 import { v4 as uuidv4 } from 'uuid';,需要安裝 uuid 這個 npm 套件。以下是詳細步驟:
安裝指令
在你的項目根目錄,運行以下命令來安裝 uuid:
1 | npm install uuid |
使用說明
安裝完後,就可以在你的項目中使用
uuid提供的功能,例如生成唯一的 UUID:1
2
3
4import { v4 as uuidv4 } from 'uuid';
const uniqueId = uuidv4(); // 生成一個新的 UUID
console.log(uniqueId); // 如 "1b4e28ba-2fa1-11d2-883f-0016d3cca427"為什麼選擇
uuiduuid是生成唯一標識符(Universally Unique Identifier,簡稱 UUID)的標準工具。v4是一種生成隨機 UUID 的版本(基於隨機數)。- 安全且廣泛使用於需要唯一標識的場景(如筆記 ID、會話令牌等)。
檢查版本
確保你安裝的是uuid的最新版本,可以運行:1
npm show uuid version
注意
如果在安裝後仍然遇到問題,確認以下事項:
確保使用的是支持 ES 模塊(
import語法)的環境。如果是舊版 Node.js,可能需要使用
require語法:1
const { v4: uuidv4 } = require('uuid');
如果有 TypeScript,需要安裝對應型別定義:
1
npm install --save-dev @types/uuid
UUID 簡介
UUID 全名是 Universally Unique Identifier(通用唯一識別碼)。它是一種標準,用於生成全球範圍內幾乎不會重複的唯一標識符。常用於需要唯一性標識的情況,比如數據庫中的主鍵、文件名、會話標識等。
UUID 的特點
- 全球唯一性: 理論上每個生成的 UUID 都是唯一的,重複的概率極低。
- 結構固定: 通常是 128 位(16 字節),以 36 個字元的格式表示:
1
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
- M 表示 UUID 的版本號,例如
v4。 - N 表示變體信息,通常與兼容性有關。
- M 表示 UUID 的版本號,例如
- 無需中心化: 不需要中央服務器協調,也能保證生成的值具有唯一性。
UUID 的常見版本
UUID 有多種版本,目前最常用的是 v4 和 v1:
UUID v4(隨機生成):
- 基於隨機數生成,沒有基於時間或設備的信息。
- 非常適合用於大部分應用場景。
- 例如:
3f2504e0-4f89-11d3-9a0c-0305e82c3301
UUID v1(基於時間戳生成):
- 包含時間戳和網卡的 MAC 地址。
- 更適合需要按時間排序的場景。
- 例如:
550e8400-e29b-41d4-a716-446655440000
UUID 的用途
唯一標識符:
用於需要唯一性的場景,如數據庫中的主鍵。1
2const userId = uuidv4();
console.log(userId); // "f47ac10b-58cc-4372-a567-0e02b2c3d479"文件命名:
避免文件名衝突。1
const fileName = `${uuidv4()}.png`;
Session 或 Token:
用於標識用戶的會話或生成 API 的訪問令牌。分布式系統:
在無法使用中心化數據庫生成主鍵時,UUID 是分布式系統中一種可靠的標識符。
為什麼使用 UUID?
- 去中心化: UUID 不依賴於任何外部系統或伺服器來生成。
- 防止衝突: 即使多個系統獨立生成 UUID,出現重複的概率也極低。
- 簡單方便: 使用現有工具(如 npm 的
uuid)即可快速生成。
示例:生成 UUID
1 | import { v4 as uuidv4 } from 'uuid'; |
常見問題
- UUID 是真的絕對唯一嗎?
- 雖然 UUID 沒有絕對保證唯一性,但重複的概率非常低。以 UUID v4 為例,其重複的概率是極其微小的(每生成 10 億個 UUID,理論上需要 68 年才可能出現一次重複)。