uuid 是一个非常流行的 npm 包,用于在 JavaScript 和 Node.js 中生成通用唯一标识符 (UUID)。这个库提供了简单易用的 API,可以用来生成各种版本的 UUID。在分布式系统中,UUID 常用于生成数据库主键、文件名、URL、缓存键等唯一标识符。
要在项目中使用 uuid 包,首先需要安装它:
npm install uuid
然后,你可以在 JavaScript 代码中导入并使用它,如下所示:
// 导入 uuid 模块
const { v1: uuidv1, v3: uuidv3, v4: uuidv4, v5: uuidv5 } = require('uuid');
// 生成一个基于时间戳和硬件信息的 UUID
const uuid1 = uuidv1();
console.log("UUID1:", uuid1);
// 生成一个基于命名空间和名字的 UUID(MD5)
const namespace = uuidv3.DNS;
const name = "example.com";
const uuid3 = uuidv3(name, namespace);
console.log("UUID3:", uuid3);
// 生成一个基于随机数的 UUID
const uuid4 = uuidv4();
console.log("UUID4:", uuid4);
// 生成一个基于命名空间和名字的 UUID(SHA-1)
const uuid5 = uuidv5(name, namespace);
console.log("UUID5:", uuid5);
输出:
UUID1: 8d9b6a0a-0e7a-11ec-8ae1-0242ac130002
UUID3: 3b8d8f92-582f-3b8d-8f92-582f3b8d8f92
UUID4: 6e8b7afc-9e6a-4d17-8d2b-5c7d1c5c3b5d
UUID5: 4b0b7fbc-2a82-5a71-8a12-5d3f4c7b6f79
uuid 库支持以下版本的 UUID:
- v1:基于时间戳和计算机硬件信息(例如 MAC 地址)生成 UUID。
- v3:基于 MD5 散列值生成 UUID。需要提供一个命名空间和一个名字。
- v4:基于随机数生成 UUID。无需提供任何输入。
- v5:基于 SHA-1 散列值生成 UUID。需要提供命名空间和名字。
虽然生成的 UUID 不能保证绝对唯一,但在实际应用中,UUID 的冲突概率非常小,通常可以视为唯一标识符。