Det er flere måter å generere en UUID i Node.js, men hvorfor velge den ene fremfor den andre? Her er hvorfor.
En universell unik identifikator (UUID) er en 128-biters tegnstreng du kan bruke til å merke og få tilgang til data. Ved å bruke Node.js kan du enkelt lage UUID-er ved å bruke flere tilnærminger.
UUID-er er kraftige for unik identifikasjon fordi sjansene for å møte samme ID er svært små. Dette betyr også at du kan generere en UUID autonomt uten å krysssjekke mot en sentral database. UUID-er er svært skalerbare.
Bruke kryptomodulen
Den innebygde kryptomodul i Node gir randomUUID()-metoden for å generere UUID-er.
konst krypto = krever("krypto")
konst uuid = crypto.randomUUID()
Å forhindre randomUUID() fra å bruke hurtigbufferen under UUID-generering, sett deaktiverEntropyCache for sant, slik:
konst uuid = krypto.randomUUID({ deaktiverEntropyCache: ekte })
Bruke uuid-pakken
I motsetning til kryptomodulen, er uuid pakke er en tredjepart npm-modul. For å installere den, kjør følgende kommando.
npm installer uuid
uuid lar deg generere forskjellige ID-versjoner:
- Versjon 1 og 4 genererer en unik ID generert tilfeldig.
- Versjon 3 og 5 genererer en unik ID fra et navneområde og navn.
Dette eksemplet viser hvordan du kan generere en versjon 4 UUID:
konst {v4: uuidv4} = krever("uuid")
konst id = uuidv4()
Bruker Nano ID
Nano ID er også en annen NPM-pakke som brukes til å generere UUID-er i Node. Selv om det fungerer nesten det samme som uuid-pakken, er det noen forskjeller:
- Nano-IDen inneholder 36 symboler i stedet for 21.
- Nano ID er to ganger raskere enn uuid.
- Nano ID er fire ganger mindre enn uuid. Identifikatorene inneholder 130 byte i stedet for 483 byte.
Bruk følgende kode for å generere en Nano-ID:
konst { nanoid } = krever("nanoid")
konst id = nanoid()
Er Nano ID bedre enn uuid?
Det er minst tre metoder du kan bruke for å generere en UUID i Node: den innebygde kryptomodulen og tredjepartspakkene uuid og Nano ID. Hvis du vil bruke en ekstern pakke, bør du vurdere Nano ID. Den er mindre og mye raskere enn uuid.