Saya telah lama bekerja dengan Node.js dan saya sentiasa menggunakan pakej uuid untuk menjana UUID dalam projek saya. Ia adalah pakej yang hebat dan ia berfungsi dengan baik, tetapi saya sentiasa merasakan bahawa ia boleh dipertingkatkan dalam beberapa aspek.
API Mudah
Salah satu perkara yang selalu mengganggu saya tentang pakej uuid ialah ia terhad kepada penjanaan UUID mudah dalam format lalai. Anda perlu tahu cara menukarnya kepada format yang berbeza, yang mungkin agak mengelirukan untuk pemula.
Rentetan UUID yang panjang
Walaupun rentetan UUID ialah format standard, ia tidak begitu sesuai untuk URL atau konteks lain di mana anda memerlukan perwakilan yang lebih padat, seperti base64. Ini memaksa anda untuk menghuraikan rentetan UUID dan menukarnya kepada format yang berbeza, yang boleh menyusahkan sedikit.
Kecekapan storan
Selain itu, bentuk rentetan UUID tidak begitu cekap dari segi ruang storan. Ia menggunakan 36 aksara untuk mewakili nilai 16-bait, yang tidak begitu cekap untuk storan atau penghantaran melalui rangkaian mahupun untuk storan pangkalan data.
Untuk menyelesaikan masalah ini, saya memutuskan untuk mencipta pakej baharu yang dipanggil @uuid-ts/uuid yang menyediakan API yang lebih mesra pengguna dan penghuraian automatik UUID daripada format yang berbeza. Ia juga termasuk fungsi utiliti untuk menukar UUID kepada format yang berbeza dan untuk mengesahkan UUID.
Ia ialah kelas TypeScript ringkas dengan sokongan UUID versi 7 yang boleh digunakan dalam kedua-dua Node.js dan persekitaran penyemak imbas. Ia bersifat isomorfik dan boleh digunakan dengan JavaScript dan TypeScript moden tanpa sebarang konfigurasi tambahan.
Menghuraikan UUID sedia ada sebagai rentetan:
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]
Menjana UUID baharu:
const uuid = new Uuid(); uuid.toString(); // '01932c0a-235b-7da6-8153-aee356735b58'
Menghuraikan UUID daripada Penimbal Node.js:
const uuid = new Uuid(buffer); uuid.toString(); // '01932c0b-e834-7b5a-9bae-2964245fc0b6'
Ia juga disertakan dengan fungsi utiliti berikut:
Uuid.bufferToUuidHex(buffer: Buffer): rentetan
Uuid.uuidBufferFromHex(uuidHexString: string): Penampan
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
Saya harap pakej ini berguna untuk anda dan ia akan membantu anda bekerja dengan UUID dengan cara yang lebih cekap dan mesra pengguna. Jika anda mempunyai sebarang maklum balas atau cadangan, sila beritahu saya.
Anda boleh mendapatkan pakej pada npm di https://www.npmjs.com/package/@uuid-ts/uuid.
Atas ialah kandungan terperinci Mengapa saya mencipta pakej UUID baharu untuk Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!