@clickhouse/client-web部署后出现ClickHose query error:crypto.randomUUID is not a function问题

crypto.randomUUID报错

我这里是因为使用使用@clickhouse/client-web组件,在服务器部署后在浏览器访问界面导致的crypto.randomUUID is not a function报错

在这里插入图片描述

如果你用http://localhost:端口,在服务器浏览器上访问这个部署的页面,发现不会报错,这是因为,你使用localhost访问的时候,@clickhouse/client-web这个组件会认为你是在开发时使用,如果你部署后,想要使用IP+端口访问你的页面,就会报ClickHose query error:crypto.randomUUID is not a function。

我这边的解决方法就是:在调用client.query方法的时候自己赋值一个UUID给query_id这个属性,这样就不会使用到底层的这个crypto.randomUUID方法

const rows = await client.query({
          query: Sql,
          format: 'JSONEachRow',
          query_id: generateUUID()
        });

generateUUID方法

export const generateUUID = () => {
  // 从 0x1000000000000000 到 0xFFFFFFFFFFFFFFFF 的随机值
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
    // 随机数生成函数
    const r = Math.random() * 16 | 0;
    const v = c === 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

great-sword

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值