You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.2 KiB
47 lines
1.2 KiB
8 months ago
|
/**
|
||
|
* 公用方法
|
||
|
*/
|
||
|
|
||
|
import fs from 'node:fs';
|
||
|
import { readdir, readFile } from 'node:fs/promises';
|
||
|
import md5 from 'md5';
|
||
|
|
||
|
class Common {
|
||
|
|
||
|
sortDict(obj) { //dict按key排序
|
||
|
return Object.keys(obj).sort().reduce(function (result, key) {
|
||
|
result[key] = obj[key];
|
||
|
return result;
|
||
|
}, {});
|
||
|
}
|
||
|
|
||
|
joinDict(obj, glue, separator) { //dict拼接成字符串
|
||
|
if (typeof(glue) == 'undefined') {
|
||
|
glue = '=';
|
||
|
}
|
||
|
|
||
|
if (typeof(separator) == 'undefined') {
|
||
|
separator = '&';
|
||
|
}
|
||
|
|
||
|
return Object.keys(obj).map(function(key) {
|
||
|
let arr = [key];
|
||
|
let val = obj[key];
|
||
|
if (typeof(val) == 'string' || typeof(val) == 'number') {
|
||
|
arr.push(val);
|
||
|
}else if (typeof(val) == 'object') {
|
||
|
arr.push(JSON.stringify(val));
|
||
|
}
|
||
|
|
||
|
return arr.join(glue);
|
||
|
}).join(separator);
|
||
|
}
|
||
|
|
||
|
sign(params, token) { //对参数做MD5签名
|
||
|
return md5( JSON.stringify(this.sortDict(params)) + token );
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
let commonFuns = new Common();
|
||
|
export default commonFuns;
|