master
8 months ago
5 changed files with 133 additions and 18 deletions
@ -0,0 +1,47 @@ |
|||||||
|
/** |
||||||
|
* 公用方法 |
||||||
|
*/ |
||||||
|
|
||||||
|
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; |
@ -0,0 +1,34 @@ |
|||||||
|
/** |
||||||
|
* Common公用方法测试用例 |
||||||
|
*/ |
||||||
|
|
||||||
|
import test from 'node:test'; |
||||||
|
import assert from 'node:assert'; |
||||||
|
import common from '../common.mjs'; |
||||||
|
|
||||||
|
|
||||||
|
test('Common function sortDict test', (t) => { |
||||||
|
let params = { |
||||||
|
b: 2, |
||||||
|
a: 1 |
||||||
|
}; |
||||||
|
|
||||||
|
const expectRes = { |
||||||
|
a: 1, |
||||||
|
b: 2 |
||||||
|
}; |
||||||
|
|
||||||
|
assert.deepEqual(common.sortDict(params), expectRes); |
||||||
|
}); |
||||||
|
|
||||||
|
test('Common function joinDict test', (t) => { |
||||||
|
let params = { |
||||||
|
b: 2, |
||||||
|
a: 1 |
||||||
|
}; |
||||||
|
|
||||||
|
const expectRes = "a=1&b=2"; |
||||||
|
|
||||||
|
assert.strictEqual(common.joinDict(common.sortDict(params)), expectRes); |
||||||
|
}); |
||||||
|
|
@ -0,0 +1,16 @@ |
|||||||
|
{ |
||||||
|
"name": "Hero Union Test", |
||||||
|
"version": "0.1", |
||||||
|
"author": "filesite.io", |
||||||
|
"type": "module", |
||||||
|
"dependencies": { |
||||||
|
"axios": "^1.3.3", |
||||||
|
"body-parser": "^1.20.1", |
||||||
|
"express": "^4.18.2", |
||||||
|
"md5": "^2.3.0", |
||||||
|
"node-cron": "^3.0.2" |
||||||
|
}, |
||||||
|
"scripts": { |
||||||
|
"test": "node common.test.mjs" |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue