UNPKG

57 kBJavaScriptView Raw
1/**
2 * Created by baibing on 2016/9/4.
3 */
4console.log('hello world');
5
6const test1 = function() {
7 //文件处理机制
8 var fs = require("fs");
9 //console.log(fs.readFileSync("c:\\RHDSetup.Log").toString());
10 /*fs.readFile('c:\\RHDSetup.log',function(err,data){
11 console.log('read:'+data.toString());
12 });
13 fs.watchFile('c:\\RHDSetup.log',function(err,data){
14 console.log('watch:'+data.toString());
15 });
16 //require('gcl');//证明package可以假冒 可以全局搜索 否则只能写全名
17 /*
18 require('\\baibing\\work\\cv\\test\\src\\com\\coooders\\common\\tool').tryC(()=>{
19 console.log(require('cookies'));
20 })*/
21 console.log(__dirname); //在不同文件中返回值不同
22 console.log(__filename);
23 //console.log('/com/coooders/net/tool'.replace(new RegExp('(^\/*)|(\/*$)'),''));
24 /*var P = require('path');
25 console.log(P.parse(P.resolve(P.normalize(process.mainModule.filename))).name);
26 var V = require('./com/coooders/common/tool');
27 */
28 //
29 //console.log(V.include('/com/coooders/net/tool').test());
30 //;
31 //todo include 两次required 保证先绝对路径再相对路径
32 //console.log(process);
33}
34
35
36const test2 = function() {
37 var event = require('events');
38 var emitter = new event.EventEmitter();
39 //emitter.on('error',function(err){console.log('出现错误!\r\n');console.log(err);});
40 /*
41 emitter.on("newListener",function(name){
42 console.log(arguments);
43 });
44 //emitter.emit("my.ss","haha","hahha");
45 //结论 emitter是专有对象事件 不是全局对象事件
46 emitter.emit.apply(emitter, ["my.ss", "hha"]);
47 emitter.emit.call(emitter, "my.ss", "hahsh");
48 var func = function () {
49 console.log(arguments);
50 };
51 func.apply(null, [22, 23, 24]);
52 func.call(null, 22, 23, 24);
53 emitter.on('my.ss', function (ss2) {
54 console.log(arguments);
55 });
56 //订阅前的事件不可用 需要使用VJ方式取代
57 emitter.emit.apply(emitter, ["my.ss", "hh2"]);
58 */
59 }
60 /*
61 const test3 = function(){
62 //Buffer 和 Array有什么不同? Buffer不是数组 不支持多维数组而且是个缓存 只能用Buffer读取String字符 该类用来创建一个专门存放二进制数据的缓存区
63 var buf = new Buffer(256);
64 buf.fill(0);
65 buf.write('中文',0);
66 var ss = "中文";
67 console.log(ss[0]);
68 console.log(buf.length);
69 console.log(buf.toString('utf-8',0,3)); //按照指定位置 可以正常读取字符串 buf.slice 和 array.slice 一样 也没有内容大小属性
70 }*/
71 /*
72 const test4 = function(){
73 //stream 流文件
74 var fs = require('fs');
75 var fs2 = fs.createReadStream("c:\\RHDSetup.Log");
76 var fs3 = fs.createWriteStream("c:\\abc.txt",{flags:'a'});//flags 默认是w
77
78 var sb = new Buffer(2302);
79 sb.fill(0);
80 fs2.setEncoding("UTF-8");
81 //fs3.setEncoding("UTF-8");
82 console.log(fs3);
83 fs3.on("finish",function(){
84 console.log('write all');
85 });
86 fs2.on("end",function(){
87 //console.log(sb.toString("utf-8"));
88 fs3.end();
89 });
90 fs2.on("error",function(err){
91 console.log(err);
92 });
93 fs2.on("data",function(datas){
94 console.log(datas.length);
95 sb.write(datas);
96 fs3.write(datas,"UTF-8");
97 console.log(1);
98 //console.log(datas);
99 });
100 console.log(fs);
101 fs.exists("c:\\abbb",function(isTrue){
102 console.log(isTrue);
103 if(isTrue) fs.rmdir("c:\\abbb");
104 else fs.mkdir("c:\\abbb",function(){console.log('create OK');});
105 });
106 //太恐怖了 先读再设置事件!! 如何设置添加方法?
107 }*/
108
109const test5 = function() {
110 //module.exports
111 //var ss = require('./ca');
112 //console.log(ss);
113 //ss.world();
114 console.log(global.__filename);
115 console.log(__filename);
116 console.log(__dirname);
117 console.log(global.process.argv);
118 console.log(global.process.execPath);
119 console.log('当前目录: ' + process.cwd());
120 console.log(global.process.execPath);
121 console.log(global.process.memoryUsage());
122 setTimeout(function() {
123 console.log(222222222);
124 }, 1);
125 var w = 0;
126 //var ww = function(){if(w++<100){console.log(22);process.nextTick(ww);} };//证明nextTick并不一定超过setTimeout执行
127 //ww();
128 var i = 100;
129 while (i--) {
130 console.log(i);
131 }
132 //console.log(process);
133 process.on('uncaughtException', function(err) {
134 console.log(err);
135 })
136 process.stdout.write("Hello World!" + "\n");
137
138}
139
140const test6 = function() {
141 var util = require('util');
142 var V = require('./com/coooders/common/tool');
143
144 console.log(new Date().sub('h', new Date().add('d', 1)));
145 console.log(22);
146 /*
147 var father = function(){
148 var _ = this,__ = {};
149 __.abc = 22;
150 _.abc = ()=>__.abc;
151 _.bcd = 33;
152 };
153 father.prototype.test1 = function(){console.log(this.bcd);}
154 var son = function(){this.b = 323;father.apply(this,[])};
155 util.inherits(son,father);
156 son.prototype.test2 = function(){console.log(this.b);}
157 var son2 = function(){this.c = 444;son.call(this)};
158 util.inherits(son2,son);
159 son2.prototype.test3 = function(){console.log(this.c);};
160 son2.test1 = son2.prototype.test1;
161 son2.prototype.test1 = function(){console.log(this.c);son2.test1.apply(this);};
162 (new son2()).test1();
163 (new son()).test1();
164 (new father()).test1();
165 //可以实现直接的继承,但是私有方法和私有属性无法保存
166 */
167 }
168 /*
169 {
170 var fs = require('fs');
171 console.log(fs);
172 fs.readdir("D:\\TDDOWNLOAD1\\",function(err,fss){
173 fss.forEach(function(v){console.log(v);});
174 });
175 //结论 目前没有找到搜索在某个目录下所有文件的能力 递归搜索不清楚如何进行
176 /*
177 fs.unlink("D:\\*.torrent",function(err){
178 if(err) console.log(err);
179 else
180 fs.readdir("D:\\TDDOWNLOAD1",function(err,fss){
181 fss.forEach(function(v){console.log(v);});
182 });
183 })*/
184 //结论 只能更新文件名 不能复制文件 可以同盘符移动文件
185 /*
186 fs.rename("D:\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1","C:\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1",function(err){
187 if(err) console.log(err);
188 });*/
189 /*
190 //fs.link("D:\\TDDOWNLOAD1\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1","c:\\abcd.tor",function(err){if(err)console.log(err);})
191 //类似于同盘符复制
192 fs.link("D:\\abcd.tor","D:\\abcd1.tor",function(err){
193 if(err) console.log(err);
194 });
195 }*/
196 /*
197 const test8 = function(){
198 var path = require('path');
199 console.log(path.basename("D:\\TDDOWNLOAD1\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1"));
200 console.log(path.dirname("D:\\TDDOWNLOAD1\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1"));
201 console.log(path.extname("D:\\TDDOWNLOAD1\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1"));
202 console.log(path.parse('D:\\TDDOWNLOAD1\\abcde\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1'));
203 console.log(path.resolve("./main.js"))
204 console.log(path.normalize(".././abc.js"));
205 //console.log(process.versions);
206 }
207 const test9 = function(){
208 var http = require('http');
209 http.createServer(function(req,rep){
210 rep.writeHead(200, {'Content-Type': 'text/html'});
211 // 响应文件内容
212 rep.write("Hello World");
213 rep.end();
214 }).listen(81,function(){console.log('server start');});
215 http.request({host:'localhost',port:81,path:'/',method:'post'},function(resp){
216 var sb = "";
217 resp.on('data',function(abc){sb+=abc;});
218 resp.on('end',function(){console.log(sb);})
219 }).end();
220 console.log(http);
221 }
222 */
223const test10 = function() {
224 const M = require('./com/coooders/net/mime');
225 console.log(M.get("abc.js"));
226 console.log(M.MIME['mp4']);
227 var tool = require('./com/coooders/common/tool');
228 tool.isDebug = true;
229
230 console.log(tool.isValid('222'));
231 var s = tool.sb();
232 s.append('22323232');
233 s.append('111');
234 console.log(s.toString());
235 s.appendFormat('a:{a}', {
236 a: 22
237 });
238 console.log(s.toString());
239
240 //console.log(tool.isArray([]));
241 /* 得到日期年月日等加数字后的日期 new Date().add('h',1)*/
242 tool.each([1, 2, 3], function(v) {
243 console.log(v);
244 });
245 tool.forC({
246 a: 1,
247 b: 2,
248 c: 3
249 }, function(k, v) {
250 console.log(k + ":" + v);
251 return true;
252 });
253 tool.forC({
254 a: 1,
255 b: 2,
256 c: 3
257 }, function(k, v, next) {
258 console.log(k + ":" + v);
259 if (next) next();
260 });
261
262 const I = require('./com/coooders/io/tool');
263 console.log(I.execDir());
264
265 var i = 100;
266 //tool.whileC(function() { return i--; }, function(v, next) { console.log(v); if (next) next(); });
267 tool.finalC(function(data, next) {
268 tool.once(function() {
269 console.log(10);
270 next();
271 }, 500);
272 }, function(data, next) {
273 tool.once(function() {
274 console.log(20);
275 if (next) next();
276 }, 300);
277 }, function(data, next) {
278 tool.once(function() {
279 console.log(12);
280 if (next) next();
281 }, 1);
282 });
283 const once = tool.once;
284 tool.finalC(
285 (data, call) => {
286 once(() => {
287 console.log(1);
288 call();
289 }, 400);
290 },
291 (data, call) => {
292 once(() => {
293 console.log(2);
294 call();
295 }, 200);
296 },
297 (data, call) => {
298 once(() => {
299 console.log(3);
300 call();
301 }, 300);
302 },
303 (data, call) => {
304 once(() => {
305 console.log(4);
306 call();
307 }, 500);
308 },
309 (data, call) => {
310 once(() => {
311 console.log(5);
312 call();
313 }, 100);
314 }
315 );
316 console.log(6);
317 tool.next(function(data, next) {
318 tool.once(function() {
319 console.log(11111);
320 if (next) next();
321 }, 500);
322 //测试为true时中断循环
323 return true;
324 }, function(data, next) {
325 tool.once(function() {
326 console.log(22222);
327 if (next) next();
328 }, 300);
329 }, function(data, next) {
330 tool.once(function() {
331 console.log(33333);
332 if (next) next();
333 }, 1);
334 });
335 console.log("abc".endWith('c'));
336 console.log(JSON.stringify({
337 a: 1,
338 b: 2
339 }));
340 console.log(tool.hash(JSON.parse(JSON.stringify({
341 a: 1,
342 b: 2
343 }))));
344 console.log(tool.merge({
345 a: 1,
346 b: 2
347 }, {
348 c: 3
349 }));
350 var ss = function() {
351 this.name = "1111";
352 console.log(arguments)
353 };
354 var ss2 = function() {
355 var _ = this,
356 __ = {};
357 tool.inherit.apply(_, [ss, [1, 2, 3]]);
358 this.abc = "32222332";
359 };
360 var ss2 = eval('(new ss())');
361 ss2 = tool.create2(ss, [1, 2, 3, 4]);
362 console.log(ss2);
363 /*
364 var create2 = function(type,args){
365 var ret = '(new '+type+'(';
366 if(tool.isArray(args)){
367 for(var i in args){
368 ret+='args['+i+'],'
369 }
370 if(args.length>0){
371 ret = ret.substr(0,ret.length-1);
372 }
373 }
374 return eval(ret+'))');
375 };*/
376 //console.log(global.ss); 暂时无法使用
377 //console.log(this.create2);
378 var event = require('events');
379 var ff = function() {
380 event.EventEmitter.call(this);
381 tool.applyCAE(this);
382 this.write = function(ss) {
383 this.emit('data', ss);
384 this.callEvent('data', ss);
385 };
386 };
387 require('util').inherits(ff, event.EventEmitter);
388 //此为nodejs内部继承
389 var f2 = tool.create(ff);
390 //tool.inherit2(f2,ff,event.EventEmitter,[]);
391 console.log(f2);
392 /*
393 var ss3 = tool.create.apply(this,[ss2,[1,2,3,4]]);
394 //ss2 = tool.create(ss,[1,2,3,4]);
395 //Object.create 不可用
396 //console.log(encodeURIComponent("ddfefesefe"));
397 var event = require('events');
398 var ff = function(){
399 event.EventEmitter.call(this);
400 tool.applyCommandAndEvent(this);
401 this.write = function(ss){this.emit('data',ss);this.callEvent('data',ss);};
402 };
403 require('util').inherits(ff,event.EventEmitter);
404 //此为nodejs内部继承
405 var f2 = tool.create(ff);
406 //tool.inherit2(f2,ff,event.EventEmitter,[]);
407 console.log(f2);
408 //f2.on('data',function(data){console.log(data)});
409 */
410 f2.registEvent('data', function(data) {
411 console.log(data)
412 });
413 f2.registCommand('abced', function(data) {
414 console.log(data)
415 });
416 f2.write('data test');
417 f2.write('data test');
418 f2.callCommand('abced', ['ddd']);
419 /*var ss = function(abc,func){
420 func.apply(null,[abc]);
421 };
422 ss('3fjjeisieef',data=>{console.log(data);});
423 */
424 //console.log(require('url').parse("http://www.runoob.com/nodejs/nodejs-web-module.html?a=1&b=2"));
425 /*var P = require('path');
426 var tt = P.parse(P.resolve(P.normalize('./com/coooders/aaaaa/abc/')));
427 //require('fs').mkdir('d:/a/b/c/d');
428 console.log(tt);
429 */
430 //console.log(require('fs'));
431 //I.moveFile('./com/test.js', './com1/test.js').then(() => console.log('move ok!'));
432 /*
433 I.moveDir('./com2', './com1').then(() => {
434 console.log('复制成功');
435 });
436*/
437}
438const test11 = function() {
439 //console.log(require('zlib'));
440 var nettool = require('./com/coooders/net/tool');
441
442 //nettool.upload("http://www.zc.com/Module/home/Index.html","D:\\TDDOWNLOAD1\\撤离科威特.mp3",(err,data)=>{});
443 //console.log(require('url').parse('http://www.hengshuiac.org/Module/home/Index.html'));
444 //nettool.post("http://www.hengshuiac.org/Module/home/Index.html").then(data => { console.log('完成' + data); });
445 //console.log(' '.trim());
446
447 var client = new nettool.WebClient();
448 //client.get("http://admin.3vjia.com/3D/v2/default.aspx").then((data) => console.log(data));
449 /*client.get("http://www.hengshuiac.org/Module/home/GetCheckCode.x?&_r=0.4258418398972825").then(function(data) {
450 //console.log(client.cookies);
451 client.get("http://www.hengshuiac.org/Module/home/Index.html").then(function(data) { console.log(client.cookies); });
452 });*/
453 //client.postJson("http://www.hengshuiac.org/Module/home/Index.html", { a: 1, b: 2 }).then(function(data) { console.log(client.cookies); });
454 //client.download("http://www.hengshuiac.org/Module/home/GetCheckCode.x?&_r=0.4258418398972825", './mm.png').then(function(err, data) { console.log('下载完成'); });
455 console.log('未测试');
456 nettool.upload("http://www.hengshuiac.org/Module/admin/UploadFile.x?crossDomain=1", '/Users/baibing/Downloads/公章.jpg').then(function(data) {
457 console.log('上传完成' + data);
458 });
459}
460const test12 = function() {
461 /*stream 测试学习
462 V.ArrayStream = function(args){
463 var _ = this,__={};
464 stream.Readable.call(this,args);
465 stream.Writeable.call(this,args);
466 _.datas = [];
467 };
468 U.inherit(V.ArrayStream,stream.Readable);
469 U.inherit(V.ArrayStream,stream.Writeable);
470 V.ArrayStream.prototype._read = function () {
471 var i = this._index++;
472 if (i > this._max)
473 this.push(null);
474 else {
475 var str = '' + i;
476 var buf = new Buffer(str, 'ascii');
477 this.push(buf);
478 }
479 }
480 //console.log(require('stream').Duplex.prototype);
481 var ss = [5,4,3,2,1]
482 //console.log(ss.splice(0,10));
483 //console.log(ss.length);
484 console.log(new Array());
485 var s = new Buffer(ss);
486 console.log(s.toJSON().data);
487 //console.log(require('zlib'));*/
488};
489const test13 = function() {
490 var C = require('./com/coooders/io/config');
491 var M = require('./com/coooders/bean/middler');
492 var N = require('./com/coooders/db/ni');
493 var V = require('./com/coooders/common/tool');
494 let P = require('./com/coooders/collection/pool');
495 var I = require('./com/coooders/io/tool');
496
497 //I.createDir('/Users/baibing/a/b/c/d');
498 //console.log(new P.pool());
499 //console.log(require('/Users/baibing/work/cv_zc/gcl/com/coooders/io/log.js'));
500 //C.getBaseConfigManager().then(conf => console.log(conf));
501 C.getApplicationConfigManager().then(cm => {
502 /*
503 console.log(cm.getConfigValue('AppSettings', 'b'));
504 var m = new M.Middler(cm);
505
506 let v = m.getObjectByAppName('VESH.view', 'Logger');
507 console.log(v);
508 v.release(" test ");
509 //console.log(v);
510 v.error("我靠是真的吗? test ");
511 V.watch();
512 V.once(() => {
513 v.release(" test 111");
514 V.watch();
515 console.log(new Date().toString('HH:mm:ss'));
516 }, 4756);
517 m.setObjectByAppName('VESH.view', 'Logger', v);
518
519 C.getApplicationConfigManager().then((cm) => {});
520 */
521 });
522 /*C.getBaseConfigManager((err,cm)=>{
523 console.log(222);
524 console.log(cm);
525 })
526
527
528 /*middler*/
529 /*ni*/
530 //var I = require('./com/coooders/io/log');
531 //证明middler框架正式可用
532 //证明slice复制可用 var ss = function(){console.log(Array.prototype.slice.apply(arguments,[0,arguments.length]));};
533
534 const fa = class {
535 constructor(a, b, c) {
536 this.a = c;
537 }
538 test1() {
539 console.log(this.a);
540 }
541 };
542
543 const son = class extends fa {
544 constructor(c) {
545 super('aaa', 'bbb', c);
546 }
547 }
548
549 console.log(new son());
550 console.log(V.create(fa, ['aa', 'bb', '11']));
551 console.log(V.create2(fa, ['aa', 'bb', '11']));
552 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
553 //C.getApplicationConfigManager().then((cm) => {
554 console.log(C.AppSettings(cm, 'b'));
555 var m = new M.Middler(cm);
556
557 const v = m.getObjectByAppName('VESH.view', 'Logger');
558 //v.error('333 test ');
559 //v.error("我靠是真的吗? test ");
560 //V.watch();
561 //V.once(()=>{v.release(" test 111");V.watch();console.log(new Date().toString('HH:mm:ss'));},4756);
562 m.setObjectByAppName('VESH.view', 'Logger', v);
563
564 /*
565 console.log(m.getObjectByAppName('VESH.view','Logger2'));
566 return;
567 */
568 /*
569 const M2 = require('mysql');
570 const conn = M2.createConnection({
571 host: '192.168.1.116',
572 user: 'root2',
573 password: '111111',
574 database: 'cv_zc',
575 port: 3306,
576 charset: 'UTF8_GENERAL_CI',
577 connectTimeout: 60000
578 });
579 conn.connect(() => {
580 console.log(333);
581
582 });
583 //conn.end();
584
585 conn.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
586 if (err) throw err;
587 console.log('The solution is: ', rows[0].solution);
588
589 });
590 conn.end();
591 * /
592 var temp = m.getObjectByAppName('Ni', 'template1');
593 console.log(temp);
594 temp.excute('ajaxtest11', { limit1: 11 }).then((result) => {
595 console.log(333);
596 console.log(result);
597 if (result.hasData())
598 console.log(result.last()[0][0]);
599 });
600 const temp2 = m.getObjectByAppName("Ni", "template");
601 temp2.excute('ajaxtest33', { data: 'ni test ' }).then(result => {
602 console.log(555);
603 console.log(result.last());
604 });
605
606 mongo mem decarator*/
607 const res = new N.NiDataResult();
608 res.add([
609 [],
610 null, [{
611 affected: 0
612 }, {}]
613 ], 0);
614 console.log('hasData', res.hasData());
615 const temp = m.getObjectByAppName('Ni', 'template1');
616 temp.excute('module.gettest', {
617 id: '11',
618 name: '2222'
619 }).then(ret => {
620 if (ret.hasData())
621 console.log(ret.last());
622 ret.clear();
623 temp.excute('module.gettest', {
624 id: '11',
625 name: '2222'
626 }).then(ret => {
627 if (ret.hasData())
628 console.log(ret.last());
629 ret.clear();
630 }).catch(e => {
631 console.log(e.message);
632 });
633 }).catch(e => {
634 console.log(e.message);
635 });
636 /*
637 const temp = m.getObjectByAppName('Ni', 'template6');
638 temp.excute('url.test', { args: { productSerialNo: '124', orderId: '222' } }).then(ret => {
639 if (ret.hasData())
640 console.log(ret.last()[0][0]);
641 }).catch(e => {
642 console.log(e.message);
643 });
644 /*const temp = m.getObjectByAppName('Ni', 'template2');
645 temp.excute('ajaxtest22', { limit1: 11 }).then(ret => {
646 console.log(ret);
647 if (ret.hasData())
648 console.log(ret.last()[0][0]);
649 }).catch(e => {
650 console.log(e.message);
651 });
652 //参数化 存储过程 out参数 缓存
653 /*
654 var temp = m.getObjectByAppName('Ni', 'template');
655 V.next((data, next) => {
656 temp.excute('ajaxtest77', { limit1: 10, a: 15 }).then(result => {
657 console.log(result.last());
658 next();
659 });
660 }, (data, next) => {
661 temp.excute('ajaxtest44', { limit1: 10, a: 15, cacheValue: '3332' }).then(result => {
662 console.log(result.last());
663 next();
664 });
665 }, (data, next) => {
666 temp.excute('ajaxtest66', { limit1: 10, a: 15, cacheValue: '3334' }).then(result => {
667 console.log(result.last());
668 next();
669 });
670 }, (data, next) => {
671 temp.excute('ajaxtest55', { limit1: 10, a: 15 }).then(result => {
672 console.log(result.last());
673 next();
674 m.setObjectByAppName('Ni', 'template', temp);
675 console.log('end');
676 });
677 });
678 /*
679 var manager = m.getObjectByAppName('Ni','templatemanager');
680 manager.excute('template','ajaxtest33',{limit1:2},(err,result)=>{
681 if(result.hasData())
682 console.log(result.last());
683 });*/
684 /*
685 var no = require('./com/coooders/db/nosql');
686 var sql = new no.NoSQLParser('?');
687 //var ret = sql.parse('update abc<a> set a=?a where a>?a and b<?b and c=?d and d=?d or (d>=4 or not e=5) order by a desc skip 10 limit 10',{a:1,b:2,c:3,d:4});
688 //var ret = sql.parse('insert into abc<a> values(?a)', { a: 1, b: 2, c: 3, d: 4 });
689 //var ret = sql.parse('abc<a>.select(*).where(a>?a and b<?b and c=?d and d=?d and (a<?b))', { a: 1, b: 2, c: 3, d: 4 });
690 //console.log(ret);
691 //ar ret = sql.parse('abc<a>.update(a=?a,b=3).where(e=5 and c=?a).skip(10).order(a desc).limit(10)', { a: 1, b: 2, c: 3, d: 4 });
692 //console.log(ret);
693 //ret = sql.parse('abc<a>.select(*).where(e=?a)', { a: 1, e: 2 });
694 //console.log(ret[0]);
695 ret = sql.parse('delete from abc<a> where a>?a and b<?b and c=?d and d=?d or (d>=4 or not e=5) order by a desc skip 10 limit 10', { a: 4, b: 3, c: 2, d: 1 });
696 console.log(ret[0]);*/
697 });
698};
699const test14 = function() {
700
701 var M1 = require('./com/coooders/module/tool');
702 console.log(M1.tcd(22, 112));
703 console.log(M1.gcd(22, 112));
704 /*
705 var CryptoJS = require('crypto-js');
706 var JsonFormatter = {
707 stringify: function (cipherParams) {
708 // create json object with ciphertext
709 console.log(cipherParams.ciphertext);
710 var jsonObj = {
711 ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64)
712 };
713
714 // optionally add iv and salt
715 if (cipherParams.iv) {
716 jsonObj.iv = cipherParams.iv.toString();
717 }
718 if (cipherParams.salt) {
719 jsonObj.s = cipherParams.salt.toString();
720 }
721
722 // stringify json object
723 return JSON.stringify(jsonObj);
724 },
725
726 parse: function (jsonStr) {
727 // parse json string
728 var jsonObj = JSON.parse(jsonStr);
729
730 // extract ciphertext from json object, and create cipher params object
731 var cipherParams = CryptoJS.lib.CipherParams.create({
732 ciphertext: CryptoJS.enc.Base64.parse(jsonObj.ct)
733 });
734
735 // optionally extract iv and salt
736 if (jsonObj.iv) {
737 cipherParams.iv = CryptoJS.enc.Hex.parse(jsonObj.iv)
738 }
739 if (jsonObj.s) {
740 cipherParams.salt = CryptoJS.enc.Hex.parse(jsonObj.s)
741 }
742
743 return cipherParams;
744 }
745 };
746
747 var ss = new GCL.Module.DESXcrypt("dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk", "wjG3Vwmk34U=");
748 var word = ss.Encrypt("abc");
749 Console.WriteLine(word);//36E8tNE6Yzg= 36E8tNE6Yzg=
750 CryptoJS.enc.Base64.parse('dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk')
751 CryptoJS.enc.Base64.parse('wjG3Vwmk34U=')
752
753 var data = CryptoJS.enc.Base64.parse('dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk');
754 console.log(CryptoJS.enc.Base64.stringify(data));
755 var encrypted = CryptoJS.algo.TripleDES.createEncryptor(CryptoJS.enc.Base64.parse('dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk'), { iv:CryptoJS.enc.Base64.parse('wjG3Vwmk34U='), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7});
756 var decrypted = CryptoJS.algo.TripleDES.createDecryptor(CryptoJS.enc.Base64.parse('dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk'), { iv:CryptoJS.enc.Base64.parse('wjG3Vwmk34U='), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7});
757 //encrypted.process("abc");
758 //var encrypted = CryptoJS.TripleDES.encrypt(CryptoJS.enc.Utf8.parse('abc'), CryptoJS.enc.Base64.parse('dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk'), { iv:CryptoJS.enc.Base64.parse('wjG3Vwmk34U='), mode: CryptoJS.mode.CFB, padding: CryptoJS.pad.Pkcs7, format: JsonFormatter });
759 var ret = encrypted.finalize(CryptoJS.enc.Utf8.parse("abc"));
760 console.log(ret.toString(CryptoJS.enc.Base64));
761 decrypted.process(CryptoJS.enc.Base64.parse(ret.toString(CryptoJS.enc.Base64)));
762 console.log(decrypted.finalize().toString(CryptoJS.enc.Utf8));*/
763 var enc = require('./com/coooders/module/des3xcrypt');
764 var encrypt = new enc.des3xcrypt("9Xd4M/3bHkhdXXutImJiS4oPuV6UUxvy", "+e/runweeTA="); //new enc.des3xcrypt("dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk", "wjG3Vwmk34U=");
765 console.log(encrypt.encrypt("abc"));
766 console.log(encrypt.encrypt("abc"));
767 console.log(encrypt.decrypt("7N1frV26vgE="));
768 console.log(encrypt.decrypt("7N1frV26vgE="));
769 console.log(enc.createKey());
770 console.log(enc.createIV());
771
772 /*资料较少暂时取消未找到des3-ECB 选项
773 var crypto = require('crypto');
774 var hash = crypto.createHash('sha1');
775 console.log(hash.update('aadvdfd').digest('base64'));
776 var cipher = crypto.createCipheriv('des3', new Buffer("dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk","base64"), new Buffer("wjG3Vwmk34U=","base64"));
777 cipher.setAutoPadding(true);
778 console.log(cipher.update("abc", "utf8", "base64")+cipher.final("base64"));
779 */
780};
781const test15 = function() {
782 /*
783 let range = (n) => n > 0 ? range(n - 1).concat([n - 1]) : [];
784 console.log(range(5));
785 let c = function(lst, m) {
786 if (m == 1) return lst;
787 else {
788 var ret = [];
789 for (let i in lst) {
790 var tlst = Array.prototype.slice.apply(lst, [0]);
791 tlst.splice(i);
792 for (let w of c(tlst, m - 1)) {
793 //console.log(w);
794 ret[ret.length] = [lst[i]].concat(w);
795 }
796 }
797 return ret;
798 }
799 };
800 /*
801 0 1 2
802 0 1 3
803 0 1 4
804 0 2 3
805 0 2 4
806 0 3 4
807 1 2 3
808 1 2 4
809 1 3 4
810 2 3 4
811 * /
812 let p = (lst, m) => {
813 if (m == 1) return lst;
814 else {
815 var ret = [];
816 for (let i in lst) {
817 var tlst = Array.prototype.slice.apply(lst, [0]);
818 tlst.splice(i, 1);
819 for (let w of p(tlst, m - 1)) {
820 //console.log(w);
821 ret[ret.length] = [lst[i]].concat(w);
822 }
823 }
824 return ret;
825 }
826 };
827 console.log(c(range(5), 3));
828 console.log(p(range(5), 3));
829 */
830};
831const test19 = function() {
832 const I = require('./com/coooders/io/log');
833 console.log(new I.LogRecord().clone());
834}
835const test20 = function() {
836 var C = require('./com/coooders/io/config');
837 var M = require('./com/coooders/bean/middler');
838 var V = require('./com/coooders/common/tool');
839 let P = require('./com/coooders/collection/pool');
840 var I = require('./com/coooders/io/tool');
841 var M2 = require('./com/coooders/net/mime');
842
843 //I.createDir('/Users/baibing/a/b/c/d');
844 //console.log(new P.pool());
845 //console.log(require('/Users/baibing/work/cv_zc/gcl/com/coooders/io/log.js'));
846 //C.getBaseConfigManager().then(conf => console.log(conf));
847 C.getApplicationConfigManager().then(cm => {
848 var Middler = new M.Middler(cm);
849 var temp = Middler.getObjectByAppName('Ni', 'template7');
850 temp.excute('', {
851 text2: '如上内容请引起注意:2232222', // text of the email
852 from: 'system@mx.its-cn.com', //'26342049@qq.com', //'system@mx.its-cn.com', // sender of the format (address or name <address> or "name" <address>)
853 to: 'baibing0004@sohu.com', // recipients (same format as above), multiple recipients are separated by a comma
854 cc: '', // carbon copied recipients (same format as above)
855 bcc: '', // blind carbon copied recipients (same format as above)
856 subject: '白冰请注意情况2', // string subject of the email
857 attachment: [{
858 data: "<html><body>错误的信息:请注意消息格式!\r\n</body></html>",
859 alternative: true
860 },
861 {
862 path: "/Users/baibing/Downloads/福岛核辐射.jpg",
863 type: M2.get("福岛核辐射2.jpg"),
864 name: "福岛核辐射2.jpg"
865 }
866 ]
867 // one attachment or array of attachments
868 }).then(ret => {
869 console.log(ret.last());
870 Middler.setObjectByAppName('Ni', 'template7', temp);
871 })
872 });
873}
874
875const test21 = function() {
876 var C = require('./com/coooders/module/cron');
877 const c2 = new C.Cron('0/5 26,29,33 0 * * 2#2'); //26,29,33 0/5 2#1
878 //todo 有重载
879 var date = new Date();
880 for (let i = 0; i < 10; i++) {
881 date = c2.next(date);
882 console.log(date.toString('yyyy-MM-dd HH:mm:ss'));
883 }
884 console.log('isEnd');
885}
886const test22 = function() {
887 var V = require('./com/coooders/common/tool');
888 console.log(V.merge({
889 a: 1
890 }, {
891 b: null
892 }, {
893 c: 0
894 }, {
895 d: undefined
896 }));
897};
898const test23 = function() {
899 var C = require('./com/coooders/io/config');
900 var M = require('./com/coooders/bean/middler');
901 var N = require('./com/coooders/db/ni');
902 var V = require('./com/coooders/common/tool');
903 let P = require('./com/coooders/collection/pool');
904 var I = require('./com/coooders/io/tool');
905 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
906 const m = new M.Middler(cm);
907 const temp = m.getObjectByAppName('Ni', 'template1');
908 temp.excute('module.gettest2', {}).then(ret => {
909 if (ret.hasData()) {
910 console.log(ret.last());
911 }
912 console.log('ok');
913 ret.clear();
914 }).catch(e => {
915 console.log(e.message);
916 });
917 });
918};
919const test24 = function() {
920 var C = require('./com/coooders/io/config');
921 var M = require('./com/coooders/bean/middler');
922 var N = require('./com/coooders/db/ni');
923 var V = require('./com/coooders/common/tool');
924 let P = require('./com/coooders/collection/pool');
925 var I = require('./com/coooders/io/tool');
926 C.getApplicationConfigManagerFromDirSync('./Ni');
927 // .then((cm) => {
928 // const m = new M.Middler(cm);
929 // console.log(m);
930 // process.exit();
931 // });
932};
933
934const test25 = function() {
935 var C = require('./com/coooders/io/config');
936 var M = require('./com/coooders/bean/middler');
937 var N = require('./com/coooders/db/ni');
938 var V = require('./com/coooders/common/tool');
939 let P = require('./com/coooders/collection/pool');
940 var I = require('./com/coooders/io/tool');
941 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
942 const m = new M.Middler(cm);
943 const temp = m.getObjectByAppName('Ni', 'template9');
944 temp.excute('redishashselect', {
945 "mv": "m",
946 "aa": "aav"
947 }).then(ret => {
948 if (ret.hasData()) {
949 console.log("ret", ret.last());
950 }
951 console.log('ok');
952 ret.clear();
953 }).catch(e => {
954 console.log(e.message);
955 });
956 });
957};
958
959const test26 = function() {
960 var C = require('./com/coooders/io/config');
961 var M = require('./com/coooders/bean/middler');
962 var N = require('./com/coooders/db/ni');
963 var V = require('./com/coooders/common/tool');
964 let P = require('./com/coooders/collection/pool');
965 var I = require('./com/coooders/io/tool');
966 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
967 const m = new M.Middler(cm);
968 const temp = m.getObjectByAppName('Ni', 'template10');
969 temp.excute('redisinsert', {
970 "mv": "m",
971 "aa": "aav",
972 "bb": "bbv"
973 }).then(ret => {
974 if (ret.hasData()) {
975 console.log(ret.last());
976 }
977 console.log('ok');
978 ret.clear();
979 }).catch(e => {
980 console.log(e.message);
981 });
982 });
983};
984const test27 = function() {
985 var C = require('./com/coooders/io/config');
986 var M = require('./com/coooders/bean/middler');
987 var N = require('./com/coooders/db/ni');
988 var V = require('./com/coooders/common/tool');
989 let P = require('./com/coooders/collection/pool');
990 var I = require('./com/coooders/io/tool');
991 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
992 const m = new M.Middler(cm);
993 const temp = m.getObjectByAppName('Ni', 'template10');
994 temp.excute('redisselect', {
995 "mv": "m",
996 "aa": "aav"
997 }).then(ret => {
998 if (ret.hasData()) {
999 console.log("ret", ret.last());
1000 }
1001 console.log(ret);
1002 console.log('ok');
1003 ret.clear();
1004 }).catch(e => {
1005 console.log(e.message);
1006 });
1007 });
1008};
1009
1010const test28 = function() {
1011 var C = require('./com/coooders/io/config');
1012 var M = require('./com/coooders/bean/middler');
1013 var N = require('./com/coooders/db/ni');
1014 var V = require('./com/coooders/common/tool');
1015 let P = require('./com/coooders/collection/pool');
1016 var I = require('./com/coooders/io/tool');
1017 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
1018 const m = new M.Middler(cm);
1019 const temp = m.getObjectByAppName('Ni', 'template11');
1020
1021
1022 var ret = temp.excute('soaptest', {
1023 code: "378066960462",
1024 imei: "646346484664645"
1025
1026 });
1027
1028 if (ret) {
1029 console.log("ret", ret.last()[0]);
1030 }
1031
1032 // temp.excute('soaptest', {
1033 // code: "378023249405",
1034 // imei: "100100100100"
1035
1036 // }).then(ret => {
1037 // if (ret.hasData()) {
1038 // console.log("ret", ret.last()[0]);
1039 // // console.log(ret.last()[0]["CsoListModel"]);
1040 // // console.log(ret.last()[0]["LogisticsVendors"]["LogisticsVendorModel"][0]);
1041 // }
1042 // ret.clear();
1043 // }).catch(e => {
1044 // console.log(e.message);
1045 // });
1046
1047 });
1048};
1049
1050const test29 = function() {
1051 var C = require('./com/coooders/io/config');
1052 var M = require('./com/coooders/bean/middler');
1053 var N = require('./com/coooders/db/ni');
1054 var V = require('./com/coooders/common/tool');
1055 let P = require('./com/coooders/collection/pool');
1056 var I = require('./com/coooders/io/tool');
1057 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
1058 const m = new M.Middler(cm);
1059 var d = new Date();
1060 console.log(d.getMinutes(), d.getSeconds(), d.getMilliseconds());
1061
1062 const temp = m.getObjectByAppName('Ni', 'template10');
1063 temp.excute('redistransinsert', {
1064 "mv": "m",
1065 "aa": "aav",
1066 "bb": "bbv",
1067 "mv2": "m",
1068 "aa2": "aav",
1069 "bb2": "bbv"
1070 }).then(ret => {
1071 if (ret.hasData()) {
1072 console.log(ret.last());
1073 }
1074 console.log('ok');
1075 ret.clear();
1076 }).catch(e => {
1077 console.log(e.message);
1078 });
1079
1080 // temp.excute('redisinsert', {
1081 // "mv": "m",
1082 // "aa": "aav",
1083 // "bb": "bbv"
1084 // }).then(ret => {
1085 // if (ret.hasData()) {
1086 // console.log(ret.last());
1087 // }
1088 // console.log('ok');
1089 // ret.clear();
1090 // console.log(d.getMinutes(), d.getSeconds(), d.getMilliseconds());
1091 // }).catch(e => {
1092 // console.log(e.message);
1093 // });
1094
1095
1096 });
1097};
1098
1099const test30 = function() {
1100 var C = require('./com/coooders/io/config');
1101 var M = require('./com/coooders/bean/middler');
1102 var N = require('./com/coooders/db/ni');
1103 var V = require('./com/coooders/common/tool');
1104 let P = require('./com/coooders/collection/pool');
1105 var I = require('./com/coooders/io/tool');
1106 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
1107 const m = new M.Middler(cm);
1108 var d = new Date();
1109 console.log(d.getMinutes(), d.getSeconds(), d.getMilliseconds());
1110
1111 const temp = m.getObjectByAppName('Ni', 'template10');
1112 temp.excute('redistransselect', {
1113 "mv": "m",
1114 "mv2": "m2",
1115 }).then(ret => {
1116 if (ret.hasData()) {
1117 console.log(ret.last());
1118 }
1119 console.log('ok');
1120 ret.clear();
1121 }).catch(e => {
1122 console.log(e.message);
1123 });
1124
1125 // temp.excute('redisinsert', {
1126 // "mv": "m",
1127 // "aa": "aav",
1128 // "bb": "bbv"
1129 // }).then(ret => {
1130 // if (ret.hasData()) {
1131 // console.log(ret.last());
1132 // }
1133 // console.log('ok');
1134 // ret.clear();
1135 // console.log(d.getMinutes(), d.getSeconds(), d.getMilliseconds());
1136 // }).catch(e => {
1137 // console.log(e.message);
1138 // });
1139
1140
1141 });
1142};
1143
1144//test23();
1145const test31 = function() {
1146 var V = require('./index');
1147 console.log(V);
1148 console.log('&a=1&b=&'.trim('&'));
1149};
1150//test31();
1151const test32 = function() {
1152 var V = require('./com/coooders/module/cron');
1153 const c = new V.Cron('0 0 0,4 * * ?');
1154 for (var i = 0, dt = new Date(); i < 4; i++) {
1155 dt = c.next(dt);
1156 console.log(dt.toString('yyyy-MM-dd HH:mm:ss'));
1157
1158 }
1159};
1160const test33 = function() {
1161 var V = require('./index');
1162 //pri方式的确可以继承父类的私有方法,类似实现了protected关键词,但是限制同一个文件,且旧函数中仍然引用旧的对象。
1163 new V.Net.test333().test();
1164};
1165const test34 = function() {
1166 var V = require('./index');
1167 //pri方式的确可以继承父类的私有方法,类似实现了protected关键词,但是限制同一个文件,且旧函数中仍然引用旧的对象。
1168 V.Net.post('https://c1.blueblue.cc/api2/getProducts.string', {
1169 "PageIndex": "0",
1170 "PageSize": "10",
1171 "status": "1",
1172 "sessionID": "8900bd95f1340d1cd0a537249d835eb7"
1173 }).then(function(ret) { console.log(ret); });
1174 return false;
1175};
1176
1177const test35 = function() {
1178 var V = require('./index');
1179 const data = [];
1180 for (var i = 0; i < 50000; i++) data[data.length] = i;
1181 let count = data.length;
1182 V.each(data, function(v, call) {
1183 console.log(v);
1184 count--;
1185 //if (count == 2332) throw new Error('2222');
1186 V.once(call, 100 * Math.random());
1187 }, 1000).then(function() {
1188 console.log(count);
1189 }).catch(function(e) {
1190 console.log(e.stack);
1191 })
1192};
1193const test36 = function() {
1194 var C = require('./com/coooders/io/config');
1195 var M = require('./com/coooders/bean/middler');
1196 var N = require('./com/coooders/db/ni');
1197 var V = require('./com/coooders/common/tool');
1198 let P = require('./com/coooders/collection/pool');
1199 var I = require('./com/coooders/io/tool');
1200 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
1201 const m = new M.Middler(cm);
1202 /*const temp = m.getObjectByAppName('Ni', 'templateredis');
1203 temp.excute('redis.inserts', {
1204 "key": "s_test2",
1205 "value": V.toJsonString({id:(+new Date())})
1206 }).then(ret => {
1207 if (ret.hasData()) {
1208 console.log("ret", ret.last());
1209 }
1210 console.log(ret);
1211 console.log('ok');
1212 ret.clear();
1213 }).catch(e => {
1214 console.log(e.message);
1215 });*/
1216 /*
1217 const temp = m.getObjectByAppName('Ni', 'templateredis');
1218 temp.excute('redis.selects', {
1219 "key": "test1",
1220 "value": "test"
1221 }).then(ret => {
1222 if (ret.hasData()) {
1223 console.log("ret", ret.last());
1224 }
1225 console.log(ret);
1226 console.log('ok');
1227 ret.clear();
1228 }).catch(e => {
1229 console.log(e.message);
1230 });*/
1231 /*const temp = m.getObjectByAppName('Ni', 'templateredis');
1232 temp.excute('redis.deletes', {
1233 "key": "test2",
1234 "value": "test"
1235 }).then(ret => {
1236 if (ret.hasData()) {
1237 console.log("ret", ret.last());
1238 }
1239 console.log(ret);
1240 console.log('ok');
1241 ret.clear();
1242 }).catch(e => {
1243 console.log(e.message);
1244 });*/
1245 /*
1246 const temp = m.getObjectByAppName('Ni', 'templateredis');
1247 temp.excute('redis.inserth', {
1248 "key": "test3",
1249 "value": V.toJsonString({ a: 44, b: 5, id: '356455' })
1250 }).then(ret => {
1251 if (ret.hasData()) {
1252 console.log("ret", ret.last());
1253 }
1254 console.log('ok');
1255 ret.clear();
1256 }).catch(e => {
1257 console.log(e.message);
1258 });
1259 temp.excute('redis.expire', {
1260 "_datetime": 20000,
1261 "datetime": 300000
1262 }).then(ret => {
1263 if (ret.hasData()) {
1264 console.log("redis.expire", ret.last());
1265 }
1266 console.log('ok');
1267 ret.clear();
1268 }).catch(e => {
1269 console.log(e.message);
1270 });*/
1271 // const temp = m.getObjectByAppName('Ni', 'templateredis');
1272
1273 // temp.excute('redis.getdbs', {
1274 // "key": "htest2",
1275 // "value": V.toJsonString({ a: "a", b: 5, id: '356455' })
1276 // }).then(ret => {
1277 // if (ret.hasData()) {
1278 // console.log("ret", ret.last());
1279 // }
1280 // console.log(ret.single());
1281 // console.log('ok');
1282 // ret.clear();
1283 // }).catch(e => {
1284 // console.log(e.message);
1285 // });
1286 //const temp = m.getObjectByAppName('Ni', 'templateredis');
1287 /**
1288 *
1289 * @desc 扣减库存Lua脚本
1290 * 库存(stock)-1:表示不限库存
1291 * 库存(stock)0:表示没有库存
1292 * 库存(stock)大于0:表示剩余库存
1293 *
1294 * @params 库存key
1295 * @return
1296 * 0:库存不足
1297 * -1:库存未初始化
1298 * 大于0:剩余库存(扣减之前剩余的库存)
1299 * redis缓存的库存(value)是-1表示不限库存,直接返回1
1300 */
1301 // temp.excute('redis.hngcrby', {
1302 // "ID": "htest2",
1303 // "_value": 8
1304 // }).then(ret => {
1305 // if (ret.hasData()) {
1306 // console.log("ret", ret.last());
1307 // }
1308 // console.log(ret.single());
1309 // console.log('ok');
1310 // ret.clear();
1311 // }).catch(e => {
1312 // console.log(e.message);
1313 // });
1314 /*
1315 const temp = m.getObjectByAppName('Ni', 'templateredis');
1316 temp.excute('redis.deleteh', {
1317 "key": "htest2",
1318 "value": V.toJsonString({a:"aa",b:55,id:(+new Date())})
1319 }).then(ret => {
1320 if (ret.hasData()) {
1321 console.log("ret", ret.last());
1322 }
1323 console.log(ret);
1324 console.log('ok');
1325 ret.clear();
1326 }).catch(e => {
1327 console.log(e.message);
1328 });*/
1329 const temp = m.getObjectByAppName('Ni', 'templateredis');
1330 temp.excute('redis.insertz', {
1331 "key": V.toJsonString({ a: "aa", b: 11, id: (+new Date()) }),
1332 "score": 0 //parseInt(Math.random() * 100)
1333 }).then(ret => {
1334 if (ret.hasData()) {
1335 console.log("ret", ret.last());
1336 }
1337 console.log(ret);
1338 console.log('1338 ok');
1339 ret.clear();
1340 }).catch(e => {
1341 console.log(1341, e.message);
1342 });
1343
1344 /*
1345 const temp = m.getObjectByAppName('Ni', 'templateredis');
1346 temp.excute('hkeys value from a<>', {
1347 "key": V.toJsonString({ a: "aa", b: 55, id: (+new Date()) }),
1348 "score": parseInt(Math.random() * 100),
1349 "limit": 2
1350 }).then(ret => {
1351 if (ret.hasData()) {
1352 console.log("ret", ret.last());
1353 }
1354 console.log(ret);
1355 console.log('ok');
1356 ret.clear();
1357 }).catch(e => {
1358 console.log(e.message);
1359 });*/
1360 temp.excute('redis.selectz', {
1361 "key": V.toJsonString({ a: "aa", b: 55, id: (+new Date()) }),
1362 "score": parseInt(Math.random() * 100),
1363 "limits": 3
1364 }).then(ret => {
1365 if (ret.hasData()) {
1366 console.log("ret", ret.single());
1367 }
1368 console.log('1369 ok');
1369 ret.clear();
1370 }).catch(e => {
1371 console.log(1372, e.message);
1372 });
1373 //const temp = m.getObjectByAppName('Ni', 'templateredis');
1374 // temp.excute('redis.deletez', {
1375 // "key": "{\"a\":\"aa\",\"b\":11,\"id\":1587991635544}",
1376 // }).then(ret => {
1377 // if (ret.hasData()) {
1378 // console.log("ret", ret.last());
1379 // }
1380 // console.log(ret);
1381 // console.log('ok');
1382 // ret.clear();
1383 // }).catch(e => {
1384 // console.log(e.message);
1385 // }); //
1386 /*const temp = m.getObjectByAppName('Ni', 'templateredis');
1387 temp.excute('redis.insertl', {
1388 "key": 'dsd'+parseInt((Math.random()*20)),
1389 "score": 1,
1390 "limits":-300
1391 }).then(ret => {
1392 if (ret.hasData()) {
1393 console.log("ret", ret.last());
1394 }
1395 console.log(ret);
1396 console.log('ok');
1397 ret.clear();
1398 }).catch(e => {
1399 console.log(e.message);
1400 });*/
1401 /*const temp = m.getObjectByAppName('Ni', 'templateredis');
1402 temp.excute('redis.selectlpop', {
1403 "key": 'dsd'+parseInt((Math.random()*20)),
1404 "score": 1,
1405 "limits":-300
1406 }).then(ret => {
1407 if (ret.hasData()) {
1408 console.log("ret", ret.last());
1409 }
1410 console.log(ret);
1411 console.log('ok');
1412 ret.clear();
1413 }).catch(e => {
1414 console.log(e.message);
1415 });*/
1416 /*const temp = m.getObjectByAppName('Ni', 'templateredis');
1417 temp.excute('redis.deletel', {
1418 "key": '{"key":"dsd14"}',
1419 "score": 1,
1420 "limits":-300
1421 }).then(ret => {
1422 if (ret.hasData()) {
1423 console.log("ret", ret.last());
1424 }
1425 console.log(ret);
1426 console.log('ok');
1427 ret.clear();
1428 }).catch(e => {
1429 console.log(e.message);
1430 });*/
1431 });
1432};
1433const test37 = function() {
1434 var C = require('./com/coooders/io/config');
1435 var M = require('./com/coooders/bean/middler');
1436 var N = require('./com/coooders/db/ni');
1437 var V = require('./com/coooders/common/tool');
1438 let P = require('./com/coooders/collection/pool');
1439 var I = require('./com/coooders/io/tool');
1440 C.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
1441 const m = new M.Middler(cm);
1442 const temp = m.getObjectByAppName('Ni', 'templateredis');
1443 temp.excute('hkeys from inserth<key>', { key1: '' }).then(ret => {
1444 if (ret.hasData()) {
1445 console.log("ret", ret.last());
1446 }
1447 console.log(ret.single());
1448 console.log('ok');
1449 ret.clear();
1450 }).catch(e => {
1451 console.log(e.message);
1452 });
1453 /*
1454 const temp = m.getObjectByAppName('Ni', 'templateredis');
1455 */
1456 temp.excute('hgets from inserth<key>', { key1: '' }).then(ret => {
1457 if (ret.hasData()) {
1458 console.log("ret", ret.last());
1459 }
1460 console.log(ret.single());
1461 console.log('ok');
1462 ret.clear();
1463 }).catch(e => {
1464 console.log(e.message);
1465 });
1466
1467 console.log(Object.keys({ a: 1, b: 2 }));
1468
1469 temp.excute('hmselect from bbb<key>', { key: 'a,aa,aaa' }).then(ret => {
1470 if (ret.hasData()) {
1471 console.log("ret", ret.last());
1472 }
1473 console.log(ret.single());
1474 console.log('ok');
1475 ret.clear();
1476 }).catch(e => {
1477 console.log(e.message);
1478 });
1479
1480 });
1481};
1482
1483const test38 = function() {
1484 //dddd
1485 //var F = require('fs');
1486 var V = require('./index.js');
1487 /*F.readFile('/Users/baibing/Downloads/004C003B3436510838313531/20190714161615_004C003B3436510838313531', function(e, v) {
1488 if (e) console.log(e.stack);
1489 else console.log(v.toString('utf8'));
1490 });*/
1491 var ss = new V.NoSQLParser();
1492 console.log(V.toJsonString(ss.parse('select * from abc WHERE a=1 AND b=1 and c=2 or (d>4)', {})[0].WhereParam))
1493};
1494const test39 = function() {
1495 //dddd
1496 //var F = require('fs');
1497 var V = require('./index.js');
1498 V.getApplicationConfigManagerFromFile(['test.npcf', 'test2.npcf']).then((cm) => {
1499 var m = new V.Middler(cm);
1500 var temp = m.getObjectByAppName('Ni', 'templateredis');
1501 temp.excute('hinsert into abc<ID>(ID,_value) values (?ID,?_value)', { ID: 111, _value: 0 }).then((result) => {
1502 if (result.hasData())
1503 console.log(result.last()[0][0]);
1504 temp.excute('hincrease into abc<ID>(ID,_value) values (?ID,?_value)', { ID: 111, _value: 10 }).catch((e) => { console.log(e) });
1505 });
1506 });
1507};
1508const test40 = function() {
1509 var V = require('./index.js');
1510 //实现分布式事务
1511 V.tnext({
1512 g: function(data, next) {
1513 console.log(1);
1514 next();
1515 },
1516 r: function(data, next) {
1517 console.log(21);
1518 next();
1519 }
1520 }, {
1521 g: function(data, next) {
1522 console.log(2);
1523 throw new Error(1526);
1524 next('哈哈哈');
1525 },
1526 r: function(data, next) {
1527 console.log(22);
1528 next();
1529 }
1530 }, {
1531 g: function(data, next) {
1532 console.log(3);
1533 throw new Error(1533);
1534 },
1535 r: function(data, next) {
1536 console.log(23);
1537 next();
1538 }
1539 }).catch(e => {
1540 console.log(1514, e.message);
1541 });
1542};
1543
1544const test41 = function() {
1545 var V = require('./index.js');
1546 V.each([1, 2, 3], function(v) {
1547 V.each([v], (v2, call) => setTimeout(() => { console.log(v2), call(false); }, 500 * v2), true);
1548 return false;
1549 });
1550};
1551const test42 = function() {
1552 var V = require('./index.js');
1553 var client = new V.Net.WebClient();
1554 var pro = {
1555 ID: '2f874e097d5e11ea9a1a00163e308174',
1556 key: 'wcmLn2cTh594PoNNGiuG9aQMo7lvFoa3',
1557 iv: 'ukGTXXwK1rM=',
1558 host: 'https://add-uat.elecadd.com',
1559 getSession: '/api/login.string',
1560 uploadfile: '/api/upload.string'
1561 };
1562 pro.crypt = new V.des3xcrypt(pro.key, pro.iv);
1563 var n = 10;
1564 V.whileC(() => n-- || undefined, function() {
1565 return V.callback2(call => {
1566 V.next(function(data, next) {
1567 client.post(pro.host + pro.getSession, {
1568 projectid: pro.ID,
1569 token: pro.crypt.encrypt(V.toJsonString({
1570 time: +new Date
1571 }))
1572 }).then(v => {
1573 data.sessionID = V.json(v).sessionID;
1574 next();
1575 }).catch(next);
1576 }, function(data, next) {
1577 client.upload(pro.host + pro.uploadfile + '?sessionID=' + data.sessionID, '/Users/baibing/Downloads/48862b6bd9812d5320e7cc022fbcac86.webp').then(v => {
1578 data.filepath = V.json(v).data.path;
1579 next();
1580 }).catch(e => console.log(e.message))
1581 }, function(data, next) {
1582 console.log(data);
1583 call();
1584 });
1585 });
1586 }, true);
1587 //client.get('https://www.baidu.com').then(v => console.log(v));
1588};
1589const test43 = function() {
1590 var V = require('./index.js');
1591 var i = 10;
1592 V.whileC(() => i-- || null, function() {
1593 console.log(1596);
1594 throw new Error(1597);
1595 }).catch(e => {
1596 console.log(1597);
1597 });
1598};
1599test36();
\No newline at end of file