📅  最后修改于: 2023-12-03 14:48:15.270000             🧑  作者: Mango
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
基于当前时间和 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(算法版本 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、密钥和会话令牌等应用场景。