我使用 Node.js 已經很長時間了,我一直使用 uuid 套件在我的專案中產生 UUID。這是一個很棒的包,並且運作良好,但我總覺得它在某些方面還可以改進。
簡單的API
關於 uuid 套件一直困擾我的事情之一是它僅限於預設格式的簡單 UUID 生成。您必須知道如何將其轉換為不同的格式,這對於初學者來說可能有點混亂。
長 UUID 字串
雖然 UUID 字串是標準格式,但它不太適合 URL 或需要更緊湊表示的其他上下文,例如 base64。這會迫使您解析 UUID 字串並將其轉換為不同的格式,這可能有點麻煩。
儲存效率
此外,UUID 的字串形式在儲存空間方面也不是很有效率。它使用 36 個字元來表示 16 位元組的值,這對於儲存或網路傳輸以及資料庫儲存來說效率都不是很高。
為了解決這些問題,我決定創建一個名為 @uuid-ts/uuid 的新包,它提供更用戶友好的 API 和自動解析不同格式的 UUID。它還包括用於將 UUID 轉換為不同格式並驗證 UUID 的實用函數。
它是一個簡單的 TypeScript 類,支援 UUID 版本 7,可在 Node.js 和瀏覽器環境中使用。它是同構的,可以與現代 JavaScript 和 TypeScript 一起使用,無需任何額外配置。
將現有的 UUID 解析為字串:
const uuidString = '01932c07-209c-7401-9658-4e7a759e7bf7'; const uuid = new Uuid(uuidString); // methods uuid.toHex(); // '01932c07-209c-7401-9658-4e7a759e7bf7'; uuid.toBase64(); // 'AZMsByCcdAGWWAAATnp1ng'; uuid.toBuffer(); // [Buffer] uuid.toInstance<Binary>(Binary); // [Binary]
產生新的 UUID:
const uuid = new Uuid(); uuid.toString(); // '01932c0a-235b-7da6-8153-aee356735b58'
從 Node.js 緩衝區解析 UUID:
const uuid = new Uuid(buffer); uuid.toString(); // '01932c0b-e834-7b5a-9bae-2964245fc0b6'
它還具有以下實用功能:
Uuid.bufferToUuidHex(buffer: Buffer): string
Uuid.uuidBufferFromHex(uuidHexString: string): Buffer
Uuid.isUuidHexString(uuid: string | Buffer): boolean
Uuid.isUuidBase64String(uuid:字串|緩衝區):緩衝區|空
Uuid.fromHex(hexString: string): Uuid
Uuid.fromBase64(base64String: string): Uuid
Uuid.fromBuffer(緩衝區: Buffer): Uuid
我希望這個包對您有用,並幫助您以更有效率和用戶友好的方式使用 UUID。如果您有任何反饋或建議,請告訴我。
您可以在 npm 上找到該軟體包:https://www.npmjs.com/package/@uuid-ts/uuid。
以上是為什麼我為 Node.js 建立了一個新的 UUID 包的詳細內容。更多資訊請關注PHP中文網其他相關文章!