Heim  >  Artikel  >  Web-Frontend  >  Warum ich ein neues UUID-Paket für Node.js erstellt habe

Warum ich ein neues UUID-Paket für Node.js erstellt habe

Susan Sarandon
Susan SarandonOriginal
2024-11-15 16:53:03493Durchsuche

Why I created a new UUID package for Node.js

Ich arbeite schon lange mit Node.js und habe in meinen Projekten immer das Paket uuid verwendet, um UUIDs zu generieren. Es ist ein tolles Paket und funktioniert gut, aber ich hatte immer das Gefühl, dass es in einigen Aspekten verbessert werden könnte.

Probleme

Einfache API

Eines der Dinge, die mich am UUID-Paket immer gestört haben, ist, dass es auf eine einfache UUID-Generierung im Standardformat beschränkt ist. Sie müssen wissen, wie man es in verschiedene Formate konvertiert, was für Anfänger etwas verwirrend sein kann.

Lange UUID-Strings

Obwohl die UUID-Zeichenfolge ein Standardformat ist, eignet sie sich nicht sehr gut für URLs oder andere Kontexte, in denen Sie eine kompaktere Darstellung benötigen, wie z. B. base64. Dies zwingt Sie dazu, die UUID-Zeichenfolge zu analysieren und in ein anderes Format zu konvertieren, was etwas umständlich sein kann.

Speichereffizienz

Außerdem ist die String-Form von UUIDs im Hinblick auf den Speicherplatz nicht sehr effizient. Es verwendet 36 Zeichen, um einen 16-Byte-Wert darzustellen, was weder für die Speicherung oder Übertragung über das Netzwerk noch für die Datenbankspeicherung sehr effizient ist.

Lösung

Um diese Probleme zu lösen, habe ich beschlossen, ein neues Paket namens @uuid-ts/uuid zu erstellen, das eine benutzerfreundlichere API und automatisches Parsen von UUIDs aus verschiedenen Formaten bietet. Es enthält auch Hilfsfunktionen zum Konvertieren von UUIDs in verschiedene Formate und zum Validieren von UUIDs.

Es handelt sich um eine einfache TypeScript-Klasse mit UUID-Version-7-Unterstützung, die sowohl in Node.js- als auch in Browserumgebungen verwendet werden kann. Es ist isomorph und kann ohne zusätzliche Konfiguration mit modernem JavaScript und TypeScript verwendet werden.

Merkmale

  • Automatisches Parsen von UUIDs aus Hex, Base64 oder Puffer
  • Automatische Generierung von UUIDs (standardmäßig v7)
  • Einfache Konvertierung von UUIDs in Hex, Base64 oder Puffer
  • Dienstprogrammmethoden zur Validierung vorhandener Zeichenfolgen oder Puffer

Verwendung

Parsen einer vorhandenen UUID als Zeichenfolge:

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]

Generieren einer neuen UUID:

const uuid = new Uuid();

uuid.toString(); // '01932c0a-235b-7da6-8153-aee356735b58'

Parsen einer UUID aus einem Node.js-Puffer:

const uuid = new Uuid(buffer);

uuid.toString(); // '01932c0b-e834-7b5a-9bae-2964245fc0b6'

Es verfügt außerdem über die folgenden Hilfsfunktionen:

Uuid.bufferToUuidHex(buffer: Buffer): string
Uuid.uuidBufferFromHex(uuidHexString: string): Puffer
Uuid.isUuidHexString(uuid: string | Buffer): boolean
Uuid.isUuidBase64String(uuid: string | Buffer): Buffer | null
Uuid.fromHex(hexString: string): Uuid
Uuid.fromBase64(base64String: string): Uuid
Uuid.fromBuffer(buffer: Buffer): Uuid

Abschluss

Ich hoffe, dass dieses Paket für Sie nützlich ist und Ihnen hilft, effizienter und benutzerfreundlicher mit UUIDs zu arbeiten. Wenn Sie Feedback oder Vorschläge haben, lassen Sie es mich bitte wissen.

Sie finden das Paket auf npm unter https://www.npmjs.com/package/@uuid-ts/uuid.

Das obige ist der detaillierte Inhalt vonWarum ich ein neues UUID-Paket für Node.js erstellt habe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn