关于生成用户id的问题
发布于 2个月前 作者 xiaokekeT 335 次浏览 来自 问答

想问下各位,在用户注册时候根据用户email或者时间戳什么之类的获取一个数字的uid,有什么模块吗,使用uuid获取到的是一个感觉xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx不太合适 untitled1.png

8 回复

这样靠谱么 哈哈哈,uuid.v4() 屏幕快照 2015-04-25 下午4.54.06.png

不行,貌似重复的值…

取十位数,然后将英文单词和-去掉,没了uuid精髓了…先就这样吧,睡会觉去,累死了,睡好了就找妹子去,年轻人一写上代码就堕落了。

import uuid from 'uuid'

export default {
  createUid() {
    let uid = uuid.v4()
    return uid.substring(0, 10).replace(/[a-z,-]/g, parseInt(Math.random() * 9))
  }
}
save() {
    this.model.uid = utils.createUid()
    return super.save(this.model)
  }

无论 mongodb 或者 sql 都是可以自动生成用户 id 的,为何需要手动生成呢?

如果量不是特别大的话,用 UUID 问题也不大啊。

@alsotang mongodb的objectId? 我想得到的是一个纯数字的能做到吗

想要短的纯数字ID,又想保证唯一性,必须自己实现一个ID分配器了。

@xiaokekeT

UUID 是十六位进制表示的,转成十进制就可以了。

a UUID is represented by 32 lowercase hexadecimal digits

直接数据库生成的id呀。

回到顶部