NodeJS,crypto.randomUUID 不是函数

问题描述 投票:0回答:3

我对 JS 很陌生,我想生成一个 UUID。这是我一步一步尝试的:

  1. mkdir test
  2. cd test
  3. touch file1.js
  4. 里面
    file1.js

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


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

你看到了错误。怎么了?我无法在任何地方找到答案。节点 JS 版本:

node -v
表演
v12.22.9

javascript node.js uuid
3个回答
13
投票

在这里你可以使用

randomBytes()
方法来获得唯一的id

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

你也可以使用 uuidv4 而不是 crypto

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

9
投票

错误是为Node版本添加了

crypto.randomUUID
功能
> v14.17.0
.

根据官方文档:https://nodejs.org/api/crypto.html#cryptorandomuuidoptions

所以如果您不想使用更新的 Node 版本,那么可能是您最好的选择https://www.npmjs.com/package/uuid


1
投票

我将 NodeJS 升级到更新版本,它成功了!

我遇到了一些问题,所以我尝试删除 NodeJS(我和这个人有同样的问题:https://github.com/nodesource/distributions/issues/1157)。

并安装了 LTS 版本:https://askubuntu.com/questions/1265813/how-to-update-node-js-to-the-long-term-support-version-on-ubuntu-20-04

现在我有:

node -v
v16.16.0

脚本有效!谢谢:)

© www.soinside.com 2019 - 2024. All rights reserved.