npm UUID用法介绍 以及与NanoID对比

238 阅读2分钟

npm UUID用法介绍

www.python100.com/html/F5WJ7M…

一、UUID简介

UUID是指通用唯一识别码,全称是Universally Unique Identifier。UUID的目的在于让分布式系统中的节点拥有唯一的标识符,不需要进行集中式的控制,即不需要为每个节点分配唯一的ID。在一般情况下,UUID的概率很大不会重复,可以用于唯一标识符。

二、UUID版本介绍

UUID有多个版本,分别用于不同的场景。其中,比较常用的有v1、v3、v4、v5四个版本。

1. uuidv1

v1版本是根据时间戳和MAC地址生成唯一ID,但同一台机器上不同进程之间可能会有重复。

npm install uuid
const { v1 } = require('uuid');
console.log(v1());

2. uuidv3

v3版本需要指定一个命名空间和一个具体的字符串来生成唯一标识符。名称和命名空间可以随意设定,只要在不同的命名空间中保证名称的唯一性即可。

const { v3 } = require('uuid');
const namespace = '1b671a64-40d5-491e-99b0-da01ff1f3341';
console.log(v3('hello', namespace));

3. uuidv4

v4版本是基于随机数来生成UUID,所以在同一机器上生成的两个v4 UUID有很小的概率会重复,但在不同机器上生成的UUID几乎可以认为是完全不同的。

const { v4 } = require('uuid');
console.log(v4());

4. uuidv5

v5版本是根据命名空间和字符串的MD5哈希值生成唯一标识符。

const { v5 } = require('uuid');
const namespace = '1b671a64-40d5-491e-99b0-da01ff1f3341';
console.log(v5('hello', namespace));

三、npm UUID的使用

npm上有很多基于UUID的模块,其中比较常用的一个是uuid

npm install uuid

现在,我们可以用uuid来生成我们需要的唯一标识符。

const { v4 } = require('uuid');
console.log(v4()); // e.g. 8ff01fba-16e7-4544-a0ec-5afab89fc4e9

四、自定义UUID生成规则

如果以上提到的UUID版本仍然不能满足我们的需求,我们可以自己定义一个UUID生成规则。

function generateUUID() {
  const dateTime = new Date().toISOString();
  const uniqueStr = Math.random().toString(36).substr(2, 9);
  const uuid = `my-prefix-${dateTime}-${uniqueStr}`;
  return uuid;
}

console.log(generateUUID()); // e.g. my-prefix-2022-05-31T13:25:55.201Z-sd6e0dokf

比UUID更轻量、更安全的工具 NanoID

blog.csdn.net/weixin_4956…