1. Nginx-跨域配置
add_header Access-Control-Allow-Origin $http_origin
add_header Access-Control-Allow-Credentials true
add_header Access-Control-Allow-Headers Origin,X-Requested-Width,Content-Type,Accept,accessToken
add_header Access-Control-Allow-Methods GET,POST,OPTIONS
add_header Access-Control-Max-Age 1728000
if ($request_method = 'OPTIONS') {
return 204
}
2. JS-去除数组相同的项
function unique(arr) {
var result = [],
hash = {}
for (var i = 0, elem
if (!hash[elem]) {
result.push(elem)
hash[elem] = true
}
}
return result
}
3. nodejs获取设备唯一码
const wmic = require('node-wmic');
(async ()=>{
var [item]= await wmic.BIOS();
console.log("BIOS.SerialNumber="+item.SerialNumber);
[item]= await wmic.CPU();
console.log("CPU.ProcessorId="+item.ProcessorId);
item= await wmic.DiskDrive();
console.log("DiskDrive[0].SerialNumber="+item[0].SerialNumber);
[item]= await wmic.CSProduct();
console.log("CSProduct.UUID="+item.UUID);
})()
4. NodeJs使用阿里云OOS问题及解决
1. 批量下载文件超时
- 下载完一个在进行下一个下载,不要使用forEach循环遍历下载
2. 循环遍历下载OOS文件代码
let client = new OSS({
region: `${region}`,
accessKeyId: `${accessKeyId}`,
accessKeySecret: ${accessKeySecret},
bucket: `${bucket}`,
secure: true,
});
await list();
async function list() {
try {
let result = await client.list({
"max-keys": 1000,
prefix: originUrl + "/data",
});
let { objects = [] } = result;
await mkdirSync(tmpDir + originUrl + "/data");
await getList(objects);
} catch (err) {
self.sendFail(err);
}
}
async function getList(objects = [], i = 0) {
if (!objects[i]) return;
let oName = objects[i].name;
let localFile = path.join(tmpDir, oName).replace(/\\/g, "/");
try {
await client.get(oName, localFile);
await getList(objects, ++i);
} catch (error) {
self.sendFail(error);
}
}