Home > Software design >  NodeJS, crypto.randomUUID is not a function
NodeJS, crypto.randomUUID is not a function

Time:08-03

I'm very new to JS, I want to generate an UUID. Here's what I tried, step by step:

  1. mkdir test
  2. cd test
  3. touch file1.js
  4. Inside file1.js:

let crypto;
try {
  crypto = require('crypto');
} catch (err) {
  console.log('crypto support is disabled!');
}


var uuid = crypto.randomUUID();
console.log(uuid);

And you see the error. What is wrong? I can't find answer anywhere. Node JS version:

node -v shows v12.22.9

enter image description here

CodePudding user response:

here you can use randomBytes() method for get unique id

const crypto = require('crypto');
console.log(crypto.randomBytes(20).toString('hex'));

you can also use uuidv4 instead of crypto

const { uuid } = require('uuidv4');
console.log(uuid());

CodePudding user response:

I upgraded NodeJS to newer version, and it worked!

I had some problems, so I tried to remove NodeJS (I had the same problem like this guy: https://github.com/nodesource/distributions/issues/1157).

And installed LTS version: https://askubuntu.com/questions/1265813/how-to-update-node-js-to-the-long-term-support-version-on-ubuntu-20-04.

Now I have:

node -v v16.16.0

and script works! Thank you :)

  • Related