如何在Node中生成唯一的ID

4,674 阅读2分钟

通用唯一标识符(UUID)是一个128位的字符串,你可以用来标记和访问数据。使用Node.js,你可以使用几种方法轻松创建UUID。

UUID对于独特的识别来说是很强大的,因为遇到相同ID的机会非常小。这也意味着你可以自主地生成一个UUID,而不需要与中央数据库进行交叉检查。UUIDs具有高度的可扩展性。

使用加密模块

Node中内置的密码模块提供了随机UUID()方法来生成UUIDs。

const crypto = require("crypto")const uuid = crypto.randomUUID()

为了防止randomUUID()在生成UUID时使用缓存,请将disableEntropyCache设置为true,像这样。

const uuid = crypto.randomUUID({ disableEntropyCache: true })

使用uuid包

与crypto模块不同,uuid包是一个第三方的npm模块。要安装它,请运行以下命令。

npm install uuid

uuid允许你生成不同的ID版本。

  • 版本1和4生成一个随机产生的唯一ID。
  • 版本3和5从命名空间和名称生成一个唯一的ID。

这个例子显示了你如何生成一个版本4的UUID。

const {v4 : uuidv4} = require("uuid")const id = uuidv4()

使用Nano ID

Nano ID也是另一个NPM包,用于在Node中生成UUID。虽然它的工作原理与uuid包几乎相同,但也有一些区别。

  • Nano ID包含36个符号而不是21个。
  • Nano ID比uuid快2倍。
  • Nano ID比uuid小四倍。它的标识符包含130个字节而不是483个字节。

使用下面的代码来生成一个Nano ID。

const { nanoid } = require("nanoid")const id = nanoid()

Nano ID比uuid好吗?

在Node中至少有三种方法可以用来生成UUID:内置加密模块和uuid和Nano ID第三方包。如果你想使用一个外部包,可以考虑Nano ID。它比uuid更小、更快。