需求
我需要更多vin!!!
分析
作为车辆唯一标识,vin生成规则还是蛮繁琐的,但我没有太多时间耗在这上面,能不能选择一个本身就具有唯一属性的标识,然后在此基础上做一些简单的调整呢,这时我想到了神奇的uuid。
实现方法
①通过引入uuid模块
看了网上的介绍,其实想用node-uuid模块来着,不过小心驶得万年船,去npm上确认下,果不其然,node-uuid没了,名字改成了uuid。
先安装一下,这里替换了国内镜像,感谢财大气粗的某宝
cnpm install uuid --save
代码如下,不多废话直接贴上
'use strict'
let fs = require('fs')
let uuid = require('uuid')
let date = new Date()
let time_stamp = date.getTime()
//目标路径下生成文件夹
fs.mkdirSync(`auto${time_stamp}`)
let path = `./auto${time_stamp}`
//生成17位大写vin
function vin(callback) {
//基于时间戳生成uuid
let str = uuid.v1()
let vin = "L" + str.replace(/-|i|o|q|u|z|0/g, '').toUpperCase().substr(0, 16)
callback(vin, "vin")
}
//生成26位小写deviceid
function deviceid(callback) {
//随机生成uuid
let str = uuid.v4()
let deviceid = str.replace(/-/g, '').toLowerCase().substr(0, 26)
callback(deviceid, "deviceid")
}
//生成对应文件
function logs(value, key) {
console.log(`${key}:${value}`);
let file_name = ''
switch (key) {
case "vin":
file_name = 'vin_temp.txt'
break;
case "deviceid":
file_name = 'deviceid.txt'
break;
default:
break;
}
fs.writeFile(`${path}/${file_name}`, value, (err) => {
if (err) throw err;
});
}
//烧写注意事项
let content = "4.重启车机,校准时间即可"
fs.writeFile(`${path}/readme!!!.txt`, content, (err) => {
if (err) throw err;
});
//调用
vin(logs)
deviceid(logs)
最后贴下效果图
②通过http请求获取成吨的vin