📜  uuid - npm (1)

📅  最后修改于: 2023-12-03 14:48:15.270000             🧑  作者: Mango

UUID - Universally Unique Identifier

UUID Logo

uuid 是一个 JavaScript 库,可以轻松生成符合 UUID 规范的随机字符串。UUID(通用唯一标识符)是一种由数字和字母组成的 128 位长的唯一标识符,适合用于识别对象、记录和实体等。

安装

可以使用 npm 包管理器安装 uuid

npm install uuid
用法

首先,需要在应用程序中导入 uuid 库:

const uuid = require('uuid');

然后,可以使用以下方法之一生成 UUID 字符串:

uuid.v1(); // 基于当前时间和 MAC 地址生成 UUID(算法版本 1)
uuid.v4(); // 通过随机数生成 UUID(算法版本 4)
示例代码
const uuid = require('uuid');

// 使用算法版本 1 生成 UUID
const uuidv1 = uuid.v1();
console.log('UUID based on time and MAC address:', uuidv1);

// 使用算法版本 4 生成 UUID
const uuidv4 = uuid.v4();
console.log('Random UUID:', uuidv4);
输出结果
UUID based on time and MAC address: 2f4aead0-3c09-11eb-9f2c-e9d6e84aa6c3
Random UUID: 3c8b6baa-303e-4236-a020-ccc63a431abe
API 文档
uuid.v1(options, buffer, offset)

基于当前时间和 MAC 地址生成 UUID(算法版本 1)。

  • options(Optional)- 一个对象,包含以下属性:
    • node - Buffer 类型的节点 ID。默认值是随机生成的(最后 6 字节用于 MAC 地址)。
    • clockseq - Number 类型的序列号(0-0x3fff),默认是随机生成的。
    • msecs - Number 类型的时间戳(毫秒级),或者是可以解析为时间戳的字符串(如 '2001-01-01')。如果未提供,则使用当前时间。
    • nsecs - Number 类型的其他时间戳(纳秒),默认是随机生成的。
  • buffer(Optional)- Buffer 类型的目标缓冲区,用于接收 UUID 值。如果未提供,则返回新的 Buffer
  • offset(Optional)- number 类型的目标缓冲区开始写入的偏移量。默认值为 0。
const options = {
  node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
  clockseq: 0x1234,
  msecs: new Date('2011-01-01').getTime(),
  nsecs: 5678,
};

const buffer = Buffer.alloc(16);
uuid.v1(options, buffer);

console.log(buffer);
// <Buffer 01 23 45 67 89 ab 11 d0 81 7f 00 00 02 23 01 3b>
uuid.v4(options, buffer, offset)

通过随机数生成 UUID(算法版本 4)。

  • options(Optional)- 一个对象,包含以下属性:
    • random - 一个 Array 类型的随机数,可以用于替换用于生成 UUID 的默认随机数生成器。
    • rng - 一个自定义的随机数生成器函数,可以用于替换默认的随机数生成器。
    • buffer - Buffer 类型的目标缓冲区,用于接收 UUID 值。如果未提供,则返回新的 Buffer
    • offset - number 类型的目标缓冲区开始写入的偏移量。默认值为 0。
const options = {
  random: [0x10, 0x91, 0xab, 0x3b, 0xde, 0x8f, 0x47, 0xa0, 0xba, 0x2c, 0x6d, 0x76, 0x3f, 0xb5, 0x30, 0x11],
};

const buffer = Buffer.alloc(16);
uuid.v4(options, buffer);

console.log(buffer);
// <Buffer 10 91 ab 3b de 8f 47 a0 ba 2c 6d 76 3f b5 30 11>
总结

uuid 是一个非常有用的 JavaScript 库,它可以轻松地生成符合 UUID 规范的随机字符串。通过可配置的选项,我们可以使用多种算法和随机数生成器来创建自定义 UUID。它适合用于生成唯一的 ID、密钥和会话令牌等应用场景。