【问题标题】:How to generate a UUID in NextJs? [duplicate]如何在 NextJs 中生成 UUID? [复制]
【发布时间】:2023-02-10 03:53:45
【问题描述】:

我正在尝试这个

import { randomUUID } from 'crypto'
var id = randomUUID()

在我的 NextJs 应用程序中,但出现此错误:

index.js?46cb:369 未捕获类型错误: (0 , crypto__WEBPACK_IMPORTED_MODULE_5__.randomUUID) 不是函数 在 eval (index.js?bee7:8:20) 在 Module../pages/index.js (index.js?ts=1649816623582:5680:1) 在 Module.options.factory (webpack.js?ts=1649816623582:618:31) 在webpack_require(webpack.js?ts=1649816623582:37:33) 在 fn (webpack.js?ts=1649816623582:287:21) 在评估 (?595a:5:16) 在 eval (route-loader.js?ea34:235:51)

加密库似乎可用于 NextJs 中的中间件(尽管它应该在浏览器中可用),但实现起来似乎很复杂。谁能建议如何在 NextJs 中生成 UUID?

【问题讨论】:

  • 使用外部库而不是 uuidshort-uuid 这样它也可以被捆绑并发送给客户端。

标签: javascript reactjs webpack next.js cryptojs


【解决方案1】:

因为crypto是Node.js内置模块,所以不能在客户端使用。您可以使用 uuidshort-uuid 等外部库来生成 uuids:

import { v4 } from "uuid";

v4(); // deadbeef-deadbeef-deadbeef-deadbeef or some uuid

使用外部跨平台库允许您在服务器和客户端中使用它,这将解决问题。

【讨论】:

    【解决方案2】:

    Crypto 是内置的 Node 模块。您不能在客户端使用它。 使用这个 uuid Package

    import { v4 as uuidv4 } from 'uuid';
    uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d
    

    【讨论】:

      猜你喜欢
      • 2020-09-23
      • 2012-12-03
      • 2012-01-18
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多