How to generate unique ID with node.js
Since Node 14.17.0 you can now use the built-in crypto module to generate UUIDs (UUIDv4 Flavored):
const { randomUUID } = require('crypto'); // Added in: node v14.17.0
console.log(randomUUID());
// '89rct5ac2-8493-49b0-95d8-de843d90e6ca'
For more you can explore https://nodejs.org/api/crypto.html#crypto_crypto_randomuuid_options
Note: crypto.randomUUID
is three times faster than uuid. And no need to add extra dependency.
Install NPM uuid package (sources: https://github.com/kelektiv/node-uuid):
npm install uuid
and use it in your code:
var uuid = require('uuid');
Then create some ids ...
// Generate a v1 (time-based) id
uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
// Generate a v4 (random) id
uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
** UPDATE 3.1.0
The above usage is deprecated, so use this package like this:
const uuidv1 = require('uuid/v1');
uuidv1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
const uuidv4 = require('uuid/v4');
uuidv4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
** UPDATE 7.x
And now the above usage is deprecated as well, so use this package like this:
const {
v1: uuidv1,
v4: uuidv4,
} = require('uuid');
uuidv1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
uuidv4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
The fastest possible way to create random 32-char string in Node is by using native crypto
module:
const crypto = require("crypto");
const id = crypto.randomBytes(16).toString("hex");
console.log(id); // => f9b327e70bbcf42494ccb28b2d98e00e