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()