Skip to content

一个短ID生成器,唯一,Url友好,不可预测,群集兼容,简单&快速 💡a short ID generator, unique, Url-friendly, Non-predictable, Cluster-compatible and simple & fast. You'll like it.

License

Notifications You must be signed in to change notification settings

charleslo1/goodid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goodid

一个短ID生成器,唯一,Url友好,不可预测,群集兼容,简单&快速

goodid

Install

npm install goodid.js --save

Usage

常规使用
import goodid from 'goodid.js'

// 生成短ID(默认16位)
goodid()          // ELlvXA6jjNua28Gm
// 别名
goodid.create()

// 生成时指定ID长度
goodid(8)         // 5MX0dNtD
// 别名
goodid.create(8)

// 生成时指定ID长度和前缀
goodid(24, 'user-')         // user-LBxQ94LPe7vYd3x7VnM
// 别名
goodid.create(24, 'user-')

// 生成时指定ID长度、前缀、字母表
goodid(24, 'user-', 'abc')  // user-cabccbacbaaacbcbbab
// 别名
goodid.create(24, 'user-', 'abc')
自定义默认配置
import goodid from 'goodid.js'

// 配置默认设置
goodid.config({
    length: 24,
    prefix: 'user-',
    alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
    startTime: new Date(2018, 9, 1).getTime()
})

// 生成短ID(使用默认配置)
goodid()               // user-LBxQ94LPe7vYd3x7VnM

// 生成时指定ID长度和前缀
goodid(24, 'file-')    // file-lCP5qU7QTZOhOPaSfqc
使用场景

使用 sequelize 进行数据库建模时可使用16位长度的短ID来代替32位长度的 uuid,以降低ID的存储空间

import goodid from 'goodid.js'
import Sequelize from 'sequelize'

// 实例化 Sequelize
const sequelize = new Sequelize({ ... })

// 定义 User 模型
const User = app.model.define('User', {
    id: {
        type: Sequelize.STRING(),
        allowNull: true,
        primaryKey: true,
        defaultValue: () => goodid()    // 【核心代码】使用短ID作为模型ID
    },
    username: {
        type: Sequelize.STRING(),
        allowNull: false,
        unique: true
    },
    password: {
        type: Sequelize.STRING(),
        allowNull: false
    }
}, {
    tableName: 'tbl_user'
})

// 实例化用户模型
var user = new User()
console.log(user.id)      // ELlZg7J3BYv0Slhx

star

如果对你有用,欢迎 star ^_^

About

一个短ID生成器,唯一,Url友好,不可预测,群集兼容,简单&快速 💡a short ID generator, unique, Url-friendly, Non-predictable, Cluster-compatible and simple & fast. You'll like it.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published