Генерация UUID - инструкция с примером

Генерация UUID - инструкция с примером

30.05.2023
648
UUID (Universally Unique Identifier) - это уникальный идентификатор, который может быть использован для идентификации объектов в системе. В Javascript можно сгенерировать UUID с помощью сторонних библиотек и функций.

Генерация UUID с помощью библиотеки uuid

Библиотека uuid является одним из наиболее популярных инструментов для генерации UUID в Javascript. Для ее использования необходимо установить ее с помощью npm команды:

npm install uuid

После установки библиотеки, можно использовать ее для генерации UUID в своем коде. Для этого необходимо импортировать функцию v4 из библиотеки uuid и вызвать ее:

const { v4: uuidv4 } = require('uuid');

console.log(uuidv4());

В данном примере мы использовали функцию v4 из библиотеки uuid для генерации UUID и вывели его в консоль. Функция v4 генерирует версию UUID, основанную на случайных числах.

Генерация UUID без использования сторонних библиотек

Также можно сгенерировать UUID без использования сторонних библиотек. Для этого можно использовать следующую функцию:

function generateUUID() {
  // Получаем текущее время в миллисекундах
  let d = new Date().getTime();
  // Если доступна производительность, то добавляем ее значение к времени
  if (typeof performance !== 'undefined' && typeof performance.now === 'function'){
      d += performance.now();
  }
  // Генерируем UUID в формате 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
      const r = (d + Math.random()*16)%16 | 0;
      d = Math.floor(d/16);
      return (c=='x' ? r : (r&0x3|0x8)).toString(16);
  });
}

Описание к примеру:

  1. Объявление функции generateUUID, которая не принимает аргументов.
  2. Получение текущего времени в миллисекундах и сохранение его в переменную d.
  3. Проверка, доступна ли производительность, и если да, то добавление ее значения к переменной d.
  4. Генерация UUID в формате 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' с помощью метода replace и регулярного выражения /[xy]/g.
  5. В методе replace используется функция обратного вызова, которая генерирует случайные числа и заменяет x и y в UUID на соответствующие шестнадцатеричные цифры.
  6. Возвращение сгенерированного UUID.

Эта функция использует текущую дату и время, а также производительность, если она доступна, для генерации UUID. Она возвращает UUID в формате 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', где x и y являются шестнадцатеричными цифрами. Этот формат соответствует стандарту UUID.

Заключение

Генерация UUID в Javascript может быть осуществлена с помощью сторонних библиотек или написанием своей функции. В данном документе мы рассмотрели оба метода и предоставили примеры для их использования. Генерация UUID может быть полезна во многих случаях, например, для создания уникальных идентификаторов для пользователей, заказов или других объектов в системе.