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);
});
};
标签:function,web,const,crypto,randomUUID,client,报错,query
From: https://blog.csdn.net/HParanoid/article/details/141280789