Генерация UUID в Node.js: 3 простых метода
UUID (универсальные уникальные идентификаторы) играют жизненно важную роль в современной разработке программного обеспечения. Создание уникальных идентификаторов является стандартной необходимостью для многих приложений Node.js: от управления сеансами до операций с базами данных, а также для отслеживания товаров, поддержки учетных записей пользователей и обеспечения безопасных транзакций, которые часто включены в программные приложения.
Цель этой статьи — дать полное представление о UUID, их важности в разработке Node.js, а также о нескольких методах и инструментах, доступных для безопасного и эффективного их создания.
Введение в UUID
UUID (универсальные уникальные идентификаторы) — это 128-битные числа, используемые для уникальной идентификации информации в распределенной вычислительной среде. Они спроектированы так, чтобы быть уникальными как в пространстве, так и во времени, а это означает, что даже если они генерируются разными системами в разные моменты времени, вероятность того, что два UUID будут одинаковыми, чрезвычайно мала.
Динамически генерируемая структура UUID:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
Здесь:
x
представляет шестнадцатеричные цифры (0–9, AF). Эти шестнадцатеричные символы добавляют UUID уникальности и непредсказуемости.M
представляет версию UUID в диапазоне от 1 до 5.N
указывает вариант UUID. Варианты — это определенные битовые комбинации, которые определяют внутреннюю структуру и расположение UUID.
Благодаря стандартизированному стилю UUID, созданные с помощью Node.js, гарантированно соответствуют общепринятым практикам и легко понимаются различными приложениями и системами.
Важное значение UUID в Node.js:
- Уникальность: предлагает способ создания идентификаторов, которые вряд ли будут конфликтовать с идентификаторами, созданными в других системах.
- Масштабируемость: это позволяет этим приложениям плавно масштабироваться без риска конфликтов идентификаторов.
- Глобальная доступность: он стандартизирован и широко признан на разных языках программирования и общепринят на многих платформах.
- Безопасность: он предлагает способ создания уникальных идентификаторов, что делает их подходящими для приложений, чувствительных к безопасности, таких как токены сеанса.
Методы генерации UUID в Node.js
Ниже приведены несколько способов создания UUID в Node.js.
1. Пакет crypto
Этот метод был представлен в Node.js версии 15.5.0. Встроенный криптопакет предоставляет функцию randomUUID
для создания UUID. Вот как вы можете его использовать.
Шаг 1: Импортировать пакет — импортируйте криптопакет. Нам не нужно его устанавливать.
const crypto = require('crypto');
Шаг 2: Вызовите метод randomUUID
, чтобы сгенерировать уникальный идентификатор.
const uuid = crypto.randomUUID();
console.log(uuid);
Шаг 3: Чтобы запустить скрипт, мы выполним следующую команду.
node index.js
Вывод:
2. Пакет short-uuid
UUID, соответствующие RFC4122 v4, являются отправной точкой для NPM short-uuid, который преобразует их в другие, часто более короткие формы. Кроме того, он предлагает переводчики для преобразования UUID, соответствующих RFC, в более короткие формы.
Чтобы установить и настроить пакет NPM short-uuid
в проекте Node.js, выполните следующие действия:
Шаг 1: Установите пакет — вы можете установить пакет short-uuid
через NPM, выполнив следующую команду в своем терминале.
npm install short-uuid
Шаг 2: Импортируйте пакет — после установки вы можете начать с импорта модуля short-uuid
в свой код Node.js с помощью функции require
.
const short = require('short-uuid');
Шаг 3: Вот базовый пример создания коротких UUID с помощью пакета NPM short-uuid
.
const short = require('short-uuid');
const translator = short();
const shortUUID = translator.new();
console.log(shortUUID);
Здесь мы импортируем модуль npm short-uuid
, используя функцию require
. Это позволяет нам использовать в нашем коде функциональность, предоставляемую пакетом short-uuid
. Мы создаем новый экземпляр модуля short-uuid
, вызывая функцию short()
. Затем мы генерируем короткий UUID, вызывая метод new()
в экземпляре транслятора. Этот метод генерирует новый короткий UUID, используя конфигурацию по умолчанию (длину и алфавит). Сгенерированный короткий UUID присваивается переменной shortUUID
. Наконец, мы записываем сгенерированный короткий UUID в консоль, что позволяет нам увидеть результат генерации UUID.
Шаг 4: Чтобы запустить скрипт, выполните команду ниже.
node index.js
Вывод:
3. Пакет nanoid
nanoid
— еще один пакет NPM, который можно использовать для создания UUID. Когда дело доходит до JavaScript, это более удобный, надежный и безопасный генератор строковых идентификаторов, чем другие меньшие пакеты.
Шаг 1: Установите пакет — вы можете установить пакет nanoid
с помощью NPM.
npm i nanoid
Шаг 2: Импортируйте пакет — вы можете начать с импорта модуля nanoid
в свой код Node.js.
const { nanoid } = require('nanoid');
Шаг 3: Вот базовый пример того, как генерировать UUID с помощью пакета npm nanoid
.
const { nanoid } = require('nanoid');
// Generate a unique ID
const id = nanoid();
console.log(id);
Функция nanoid()
генерирует уникальную строку идентификатора длиной по умолчанию в 21 символ. Этот идентификатор состоит из безопасных для URL-адресов символов (A-Za-z0-9_-) и устойчив к коллизиям.
Сначала мы импортируем функцию nanoid
из пакета nanoid
, используя деструктуризацию. Затем мы вызываем функцию nanoid()
, которая генерирует случайный уникальный идентификатор. Сгенерированный идентификатор сохраняется в переменной id
. Наконец, мы записываем сгенерированный идентификатор в консоль.
Мы также можем настроить длину сгенерированного идентификатора, передав число в качестве аргумента функции nanoid()
:
const customLengthId = nanoid(10); // Generate a unique ID of length 10
console.log(customLengthId);
Это создаст уникальный идентификатор длиной 10 символов. Аргумент длины должен находиться в диапазоне от 1 до 36 включительно.
Заключение
В заключение, мы можем создавать UUID с помощью Node.js, используя различные методы и библиотеки, включая пакет nanoid
, short-uuid
через NPM и встроенный модуль crypto
. Node.js предоставляет ряд решений посредством встроенных модулей и пакетов NPM для быстрого и эффективного создания уникальных идентификаторов. Разработчики могут выбрать подход или пакет, который лучше всего соответствует их потребностям и предполагаемому использованию.