Node.js UUID:介绍和常用函数 UUID(通用唯一标识符)是一个由 36 个字符组成的字符串,通常用于唯一标识对像。在 Node.js 中,使用 uuid 模块可以方便地生成和操作 UUID。 本文将介绍 uu
Node.js UUID:介绍和常用函数
UUID(通用唯一标识符)是一个由 36 个字符组成的字符串,通常用于唯一标识对像。在 Node.js 中,使用 uuid 模块可以方便地生成和操作 UUID。
本文将介绍 uuid 模块的常见函数,包括生成 UUID、验证 UUID 的格式、从字符串中提取 UUID 的信息等。
- 生成 UUID
1.1 uuid.v1()
uuid.v1() 可以生成基于时间戳的 UUID。生成的 UUID 包含了当前时间、本机 MAC 地址、随机数等信息,可以保证在一定程度上的唯一性。
代码示例:
const uuid = require('uuid'); const myUUID = uuid.v1(); console.log(myUUID); // 输出类似:'785b5ae0-5dd2-11eb-9e0b-bf0bd77dcb5e'
1.2 uuid.v4()
uuid.v4() 可以生成随机的 UUID。生成的 UUID 不基于任何特定的信息,可以保证在很大程度上的唯一性。
代码示例:
const uuid = require('uuid'); const myUUID = uuid.v4(); console.log(myUUID); // 输出类似:'a0c19832-544b-4d9a-81b5-acc1b5141b4b'
- 验证 UUID 格式
2.1 uuid.validate(uuid)
uuid.validate(uuid) 可以验证 UUID 的格式是否正确。如果正确,返回 true;否则,返回 false。
代码示例:
const uuid = require('uuid'); const myUUID = 'a0c19832-544b-4d9a-81b5-acc1b5141b4b'; console.log(uuid.validate(myUUID)); // 输出 true
- 从字符串中提取 UUID 信息
3.1 uuid.parse(uuidString)
uuid.parse(uuidString) 可以从 UUID 字符串中提取信息,返回一个包含以下字段的对象:
- timeLow: 低位时间戳,32 位整数
- timeMid: 中位时间戳,16 位整数
- timeHiAndVersion: 高位时间戳和版本号,16 位整数
- clockSeqHiAndReserved: 时钟序列高位和保留位,8 位整数
- clockSeqLow: 时钟序列低位,8 位整数
- node: 节点标识符,6 个字节的数组
代码示例:
const uuid = require('uuid'); const myUUID = 'a0c19832-544b-4d9a-81b5-acc1b5141b4b'; console.log(uuid.parse(myUUID)); // 输出:{ timeLow: 2722581643, timeMid: 21515, timeHiAndVersion: 3322, clockSeqHiAndReserved: 129, clockSeqLow: 181, node: <Buffer ac c1 b5 14 1b 4b> }
3.2 uuid.unparse(buffer)
uuid.unparse(buffer) 反向操作 uuid.parse(),从包含 UUID 信息的对象中提取 UUID 字符串。
代码示例:
const uuid = require('uuid'); const myUUID = { timeLow: 2722581643, timeMid: 21515, timeHiAndVersion: 3322, clockSeqHiAndReserved: 129, clockSeqLow: 181, node: Buffer.from([172, 193, 181, 20, 27, 75]) }; console.log(uuid.unparse(myUUID)); // 输出 'a0c19832-544b-4d9a-81b5-acc1b5141b4b'
- 总结
uuid 模块提供了丰富的函数,方便了处理和操作 UUID。本文介绍了最常用的几个函数,包括生成基于时间戳的 UUID、生成随机的 UUID、验证 UUID 的格式、从字符串中提取 UUID 信息等。