node.js使用NodeMachineID 生成唯一UUID和注意事项

node-machine-id用于获取或生成唯一的机器ID

如何使用

const { machineId, machineIdSync } = require('node-machine-id')
JSON.stringify(machineIdSync({original: true}))	;

在这里插入图片描述

方法: machineIdSync
此函数同步获取操作系统本机UUID/GUID,默认情况下进行哈希处理。
function machineIdSync(original?: boolean): string;
如果为true,则返回机器id的原始值,否则返回哈希值(sha-256)
推荐使用方法:machineId
function machineId(original?: boolean): Promise;
功能和上面一样只是异步实现

在vue中设置 全局UUID版本号可以配置在vue.config.js中

//	vue.config.js中
configureWebpack: {
    plugins: [
      new webpack.DefinePlugin({
        VERSION: JSON.stringify(machineIdSync({original: true}))
      }),
      new NodePolyfillPlugin()
    ],
  },
//main.js中
app.config.globalProperties.$VERSION = VERSION;

注意事项

使用盗版操作系统UUID重复问题

如果使用一个U盘装操作系统,那么装出来的电脑UUID将全部都是相同的一个,如:
操作系统UUID (03000200-8400-8580-8836-880700083009)
在这里插入图片描述
使用生成node-machine-id的结果也是一样的,如下:
在这里插入图片描述
目前博主默认解决方法是模拟一个UUID生成,存储到localStorage

function uuid() {  
  var uuidValue = "", k, randomValue;  
  for (k = 0; k < 32;k++) {  
    randomValue = Math.random() * 16 | 0;  
  
    if (k == 8 || k == 12 || k == 16 || k == 20) {  
      uuidValue += "-"  
    }  
    uuidValue += (k == 12 ? 4 : (k == 16 ? (randomValue & 3 | 8) : randomValue)).toString(16);  
  }  
  return uuidValue;  
}  
let VER = localStorage.getItem("VERSION");
if(!VER){
  VER = uuid();   //如: 53bc2742-f470-4f37-864f-03df6e84159c
  localStorage.setItem("VERSION", VER);
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值