美文网首页一起学习前端
js如何生成唯一标识符(类似uuid)

js如何生成唯一标识符(类似uuid)

作者: 费莱姆 | 来源:发表于2019-11-16 09:01 被阅读0次

1. JavaScript唯一ID生成器Nano ID

NanoID: 一个极小的,安全的ID生成器
Source:https://github.com/ai/nanoid

  • 安装nanoid
npm i nanoid
  • 引入使用(随机生成唯一id)
    const nanoid = require('nanoid')

    console.log(nanoid());  // Hz8ODbd-zGlWCURoLbREe
    
    console.log(nanoid(8)) // r1Qxk61m

  • 自定义字母或长度
    const generate = require('nanoid/generate');
    
    model.id = generate('1234567890abcdef', 10); //=> a082c43d4e
    
    // 如果要使用相同的URL友好符号,只需更改长度,
    const url = require('nanoid/url');
    
    model.id = generate(url, 10); //=> WK5Rp2Nqkd
  • 您可以使用format模块替换默认的安全随机生成器。
    const format = require('nanoid/format')
     
    function random (size) {
      const result = []
      for (let i = 0; i < size; i++) {
        result.push(randomByte())
      }
      return result
    }
     
    format(random, "abcdef", 10) //=> "fbaefaadeb"
  • 可以使用非常快速的非安全生成器。
    const nonSecure = require('nanoid/non-secure')
    
    const id = nonSecure() //=> "Uakgb_J5m9g-0JDMbcJqLJ"
  • 异步API用于随机数生成器
    const nanoid = require('nanoid/async')
     
    async function createUser () {
      user.id = await nanoid()
    }
    const format = require('nanoid/async/format')
    const url = require('nanoid/url')
     
    function random (size) {
      return new Promise(…)
    }
     
    async function createUser () {
      user.id = await format(random, url, 10)
    }

相关文章

网友评论

    本文标题:js如何生成唯一标识符(类似uuid)

    本文链接:https://www.haomeiwen.com/subject/gogeictx.html