forked from luoyjx/gaoqi-blog
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtools.js
58 lines (48 loc) · 1.19 KB
/
tools.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
"use strict";
var Promise = require('bluebird');
var bcrypt = require('bcryptjs');
var moment = require('moment');
moment.locale('zh-cn'); // 使用中文
// 格式化时间
exports.formatDate = function (date, friendly) {
date = moment(date);
if (friendly) {
return date.fromNow();
} else {
return date.format('YYYY-MM-DD HH:mm');
}
};
// 超过1000转为k单位
exports.formatPV = function (pv) {
if (!isNaN(pv)) {
if (pv > 10000) {
//丢弃小数部分
return parseInt(pv / 1000) + 'k';
} else if (pv > 1000) {
//保留一位小数
return new Number(pv / 1000).toFixed(1) + 'k';
} else {
return pv;
}
}
return 0;
};
exports.validateId = function (str) {
return (/^[a-zA-Z0-9\-_]+$/i).test(str);
};
exports.bhash = function (str) {
return new Promise(function(resolve, reject) {
bcrypt.hash(str, 10, function(err, hashed) {
if (err) return reject(err);
return resolve(hashed);
});
})
};
exports.bcompare = function (str, hash) {
return new Promise(function (resolve, reject) {
bcrypt.compare(str, hash, function(err, result) {
if (err) return reject(err);
return resolve(result);
});
});
};