介绍
Haikunator-porreta 是一个基于 Node.js 的生成随机唯一标识符的 npm 包,主要用于在前端应用程序中生成唯一的 ID、token 等。
安装
npm install haikunator-porreta
使用方法
const Haikunator = require('haikunator-porreta'); const haikunator = new Haikunator(); const uniqueId = haikunator.haikunate(); // 输出唯一 ID
上面例子中我们通过 const
定义 Haikunator
和 haikunator
,然后通过 haikunator.haikunate()
方法生成一个唯一的 ID。
haikunate()
方法还支持以下选项:
tokenLength
:指定生成的 token 的长度,默认是 4。delimiter
:指定分隔符,默认是-
。tokenHex
:生成的 token 是否为 16 进制数值,默认为 false。tokenChars
:生成的 token 发生变化,所以您可以自定义字符集来替代默认字符集。
深入理解
这里主要介绍 Haikunator 的随机算法。
Haikunator 使用了一种称为“随机底数”的算法,该算法单词构成有两个组成部分:
- 第一个是随机单词列表,这个列表中的单词全部是浅色、助记的,并且所有单词长度为 5 个字母或更少。
- 第二个是随机数字,它是从一个特殊数字列表中随机生成的,这些数字列表是一个固定的有序数组。
随机单词由以下四个元素组成:
- 范畴
- 形容词
- 名词
- 最后一个元素是一个可选的定冠词(“the”或“a”)。
Haikunator-porreta 还包括了 haikkunator.seed()
方法,它可以在基础上添加一组随机种子,来增加熵的随机性。
示例代码
-- -------------------- ---- ------- ----- ---------- - ------------------------------ ----- ---------- - --- ------------ --------- - ------------ -- ---------- ---- ----------- ------------ -- ----- ---------- --- ----- -------- - ----------------------- -- ---- --
这个示例上,我们添加了一些参数,例如 token 的长度为 6、一个自定义的 delimiter(*
)以及使用 0123456789
字符集代替随机字符集。并且,我们加入了种子,增加了熵的随机性。
总结
通过使用 Haikunator-porreta 这个 npm 包,我们可以在前端应用程序中轻松地生成唯一 ID、token 等,在用户登录、文件上传、角色分配等场景中,都可以使用 Haikunator-porreta 来生成唯一的标识符。同时,Haikunator-porreta 也给我们提供了很好的单词构成随机算法,帮助我们更好地理解随机算法的核心价值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005596781e8991b448d6eb5