Node.jsでUUIDを生成する
TypeScript Node.js アプリにおけるGUID/UUIDについて
GUID (Globally Unique Identifier) と UUID (Universally Unique Identifier) は、世界中で一意な識別子を生成するための標準的な方法です。Node.js アプリケーションでは、これらの識別子をさまざまな場面で使用することができます。
GUID/UUIDの生成方法
Node.js には、uuid
モジュールが組み込まれています。このモジュールを使用して、簡単に GUID/UUID を生成することができます。
import { v4 as uuidv4 } from 'uuid';
const uuid = uuidv4();
console.log(uuid);
上記コードは、v4 バージョンの UUID を生成し、コンソールに出力します。v4 UUID は、ランダムに生成されるため、衝突する可能性は非常に低いです。
- イベントトラッキング
イベントを一意に識別するために使用されます。 - ファイル名
ファイルを一意に識別するために使用されます。 - セッション管理
ユーザーのセッションを識別するために使用されます。 - データベースのプライマリキー
データベースのレコードを一意に識別するために使用されます。
- 可読性
UUID はランダムな文字列であるため、人間が読みやすいものではありません。 - 衝突の可能性
非常に低いですが、理論的には衝突する可能性は存在します。
uuid
モジュールを使用した生成
import { v4 as uuidv4 } from 'uuid';
const uuid = uuidv4();
console.log(uuid);
uuidv4()
関数は、新しい v4 UUID を生成します。v4
は、ランダムに生成される UUID バージョンです。
カスタム UUID 生成関数
function generateUUID(): string {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
(c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4)).toString(16)
);
}
const customUUID = generateUUID();
console.log(customUUID);
- この関数は、
crypto.getRandomValues()
を使用してランダムなバイトを取得し、UUID の各セグメントを生成します。
Node.jsでUUIDを生成する
const { v4: uuidv4 } = require('uuid');
const uuid = uuidv4();
console.log(uuid);
- JavaScript のコードでも、
uuid
モジュールを使用して UUID を生成できます。
function generateUUID() {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
(c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4)).toString(16)
);
}
const customUUID = generateUUID();
console.log(customUUID);
- JavaScript のコードでも、カスタムの UUID 生成関数を定義することができます。
crypto
モジュールを使用した生成
import crypto from 'crypto';
function generateUUID(): string {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
(c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4)).toString(16)
);
}
const customUUID = generateUUID();
console.log(customUUID);
import { nanoid } from 'nanoid';
const nanoidUUID = nanoid();
console.log(nanoidUUID);
nanoid
は、よりコンパクトで高速な UUID 生成ライブラリです。
import shortid from 'shortid';
const shortidUUID = shortid.generate();
console.log(shortidUUID);
shortid
は、より短い UUID を生成するライブラリです。
const crypto = require('crypto');
function generateUUID() {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
(c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4)).toString(16)
);
}
const customUUID = generateUUID();
console.log(customUUID);
const { nanoid } = require('nanoid');
const nanoidUUID = nanoid();
console.log(nanoidUUID);
const shortid = require('shortid');
const shortidUUID = shortid.generate();
console.log(shortidUUID);
node.js typescript uuid