Node.jsでアルファベット混じりの短めのユニークID生成
Node.jsでおなじみのuuidパッケージを使ってUUIDを生成していました。
https://www.npmjs.com/package/uuid
ただこれだと
23b7f61b-5d92-40bf-9c2d-1a6da91ac059
のように長くなってしまいます。URLに使うなら長さが短くアルファベットも交えたものにしたい。noteの記事のURLのように。 探していたらnanoidパッケージが良さそうなので使うことにしました。
https://github.com/ai/nanoid#custom-alphabet-or-size
いつものyarnでインストール。
$ yarn add nanoid
このようにするとa〜zの英小文字と数字で構成された10桁の文字列が得られます。
import { customAlphabet } from 'nanoid' const nanoid = customAlphabet('1234567890abcdefghijklmnopqestuvwxyz', 10) const id = await nanoid()