是否可以导入Node.js模块以在Next.js中使用?

ykejflvf  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(204)

我有个愚蠢的问题我需要在我的Next.js项目中创建UUID,但我不想添加冗余包。所以在组件中,我导入crypto如下:

import crypto from 'crypto';

然后,我一直使用如下:

const generateUuid = () => {
    console.log(crypto.randomBytes(10).toString('hex'))
  }

  return <button onClick={generateUuid}>Generate UUID</button>

它的工作,因此我几乎困惑。😀
其他文章说应该使用getInitialProps来确保代码在服务器上运行。但我没有问题。你能描述一下吗?如果我错了,请纠正我。
谢谢

wyyhbhjk

wyyhbhjk1#

next.js有两个运行时。edgenode。Edge Runtime支持cryptoEdge Runtime support those
从这里
Next.js内部的Edge Runtime使用Node.js API的严格子集(如请求,响应等),这些API与Vercel等边缘计算平台或自托管时兼容。这些API可以在任何地方运行,包括在浏览器中,允许开发人员学习一次并在任何地方编写。
Vercel有一个演示edge-functions-crypto

相关问题