-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
127 lines (110 loc) · 3.58 KB
/
index.js
File metadata and controls
127 lines (110 loc) · 3.58 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
var http = require('http');
var url = require('url');
var util = require('util');
var fs = require('fs');
var $m = require('./random');
const needLog = false;
if(needLog) {
var logger = require('tracer').colorConsole({
transport: function (data) {
console.log(data.output);
fs.appendFile('./file.log', data.output + '\n', (err) => {
if (err) throw err;
});
}
});
} else {
var logger = console;
}
//数组
// for (let urlindex = 0; urlindex < 10; urlindex++) {
// url_data.push([{
// url: '/',
// data: 'enter config first'
// }, {
// //对象
// url: '/object',
// data: $m.obj({ name: 'str|5,6' })
// }, {
// //数组
// url: '/array',
// data: $m.arr(10, 10, 'str', 1, 100)
// }, {
// //对象里数组
// url: '/objinarr',
// data: [$m.obj({ name: 'arr|5,6,`str`,1,2' }), $m.obj({ name: 'arr|5,6,`str`,1,2' })]
// }, {
// //数组里对象
// url: '/arrinobj',
// data: $m.obj({ arr: $m.arr(5, 6, `str`, 1, 2) })
// }, {
// //bdid
// url: '/bdid',
// data: $m.obj({
// manager: true,
// bd_name: $m.cstr(3, 4),
// bd_id: $m.rint(1, 300),
// dep_name: $m.cstr(3, 4),
// group_name: $m.arr(4, 4, 'cstr', 4, 4),
// time_range: $m.arr(30, 30, 'str_low', 8, 8),
// data_detail: [$m.arr(30, 30, 'rint', 1, 100), $m.arr(30, 30, 'rint', 1, 100), $m.arr(30, 30, 'rint', 1, 100), $m.arr(30, 30, 'rint', 1, 100)],
// data_dep: $m.arr(30, 30, 'rint', 1, 100),
// })
// }])
// }
var srv = http.createServer(function (req, res) {
var params = url.parse(req.url, true).query;
var path = url.parse(req.url, true).pathname;
// let endTime = new Date().getTime().toString().slice(-1);
logger.log(params.$m_message)
// 不变性
// let invariance = params.invariance || true;
// if (invariance) {
// endTime = 0;
// }
const url_data = [];
// console.log(params);
var validParam = true;
// console.log(validParam)
if(!params.$m_message) {
logger.log('\n[TypeError] no params $m_message from %s ' , path);
res.writeHead(404, { "Content-Type": "text/plain" });
// res.setHeader(404, { "Content-Type": "text/plain" });
res.end("404 error! File not found.");
return ;
}
try {
var mel = eval(params.$m_message)
} catch (e) {
validParam = false;
logger.log('\n[TypeError] transform $m_message to expect type but get (%s)', e.$m_message)
// res.setHeader("Access-Control-Expose-Headers", "*");
}
if (validParam) {
url_data.push({
data: mel
});
// logger.log('\n%d', url_data.length)
url_data.forEach((v) => {
if (path) {
// res.setHeader("Access-Control-Allow-Origin", "*");
// res.setHeader("Access-Control-Allow-Credentials", "true");
// res.setHeader("Access-Control-Allow-Methods", "*");
// res.setHeader("Access-Control-Allow-Headers", "Content-Type,Access-Token");
// res.setHeader("Access-Control-Expose-Headers", "*");
res.writeHead(200, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': '*' });
res.write(JSON.stringify(v.data));
res.end();
logger.log('\n%s >>> %j', path, JSON.stringify(v.data));
return;
}
})
} else {
res.writeHead(400, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': '*' });
res.end();
return;
}
});
srv.listen(9000, function () {
logger.log('\n---------------------\n----====START====----\n---------------------\n');
});