UNPKG

gcl

Version:

码农村nodejs类库,完成解决回调陷阱,配置框架,IOC框架,统一多DB访问框架,可扩展日志框架和io/db/net/thread/pool 克隆表达式,加解密算法等等一系列基础类库和算法的实现

1,557 lines (1,500 loc) 68.5 kB
/** * Created by baibing on 2016/9/4. */ console.log("hello world"); const test1 = function () { //文件处理机制 var fs = require("fs"); //console.log(fs.readFileSync("c:\\RHDSetup.Log").toString()); /*fs.readFile('c:\\RHDSetup.log',function(err,data){ console.log('read:'+data.toString()); }); fs.watchFile('c:\\RHDSetup.log',function(err,data){ console.log('watch:'+data.toString()); }); //require('gcl');//证明package可以假冒 可以全局搜索 否则只能写全名 /* require('\\baibing\\work\\cv\\test\\src\\com\\coooders\\common\\tool').tryC(()=>{ console.log(require('cookies')); })*/ console.log(__dirname); //在不同文件中返回值不同 console.log(__filename); //console.log('/com/coooders/net/tool'.replace(new RegExp('(^\/*)|(\/*$)'),'')); /*var P = require('path'); console.log(P.parse(P.resolve(P.normalize(process.mainModule.filename))).name); var V = require('./com/coooders/common/tool'); */ // //console.log(V.include('/com/coooders/net/tool').test()); //; //todo include 两次required 保证先绝对路径再相对路径 //console.log(process); }; const test2 = function () { var event = require("events"); var emitter = new event.EventEmitter(); //emitter.on('error',function(err){console.log('出现错误!\r\n');console.log(err);}); /* emitter.on("newListener",function(name){ console.log(arguments); }); //emitter.emit("my.ss","haha","hahha"); //结论 emitter是专有对象事件 不是全局对象事件 emitter.emit.apply(emitter, ["my.ss", "hha"]); emitter.emit.call(emitter, "my.ss", "hahsh"); var func = function () { console.log(arguments); }; func.apply(null, [22, 23, 24]); func.call(null, 22, 23, 24); emitter.on('my.ss', function (ss2) { console.log(arguments); }); //订阅前的事件不可用 需要使用VJ方式取代 emitter.emit.apply(emitter, ["my.ss", "hh2"]); */ }; /* const test3 = function(){ //Buffer 和 Array有什么不同? Buffer不是数组 不支持多维数组而且是个缓存 只能用Buffer读取String字符 该类用来创建一个专门存放二进制数据的缓存区 var buf = new Buffer(256); buf.fill(0); buf.write('中文',0); var ss = "中文"; console.log(ss[0]); console.log(buf.length); console.log(buf.toString('utf-8',0,3)); //按照指定位置 可以正常读取字符串 buf.slice 和 array.slice 一样 也没有内容大小属性 }*/ /* const test4 = function(){ //stream 流文件 var fs = require('fs'); var fs2 = fs.createReadStream("c:\\RHDSetup.Log"); var fs3 = fs.createWriteStream("c:\\abc.txt",{flags:'a'});//flags 默认是w var sb = new Buffer(2302); sb.fill(0); fs2.setEncoding("UTF-8"); //fs3.setEncoding("UTF-8"); console.log(fs3); fs3.on("finish",function(){ console.log('write all'); }); fs2.on("end",function(){ //console.log(sb.toString("utf-8")); fs3.end(); }); fs2.on("error",function(err){ console.log(err); }); fs2.on("data",function(datas){ console.log(datas.length); sb.write(datas); fs3.write(datas,"UTF-8"); console.log(1); //console.log(datas); }); console.log(fs); fs.exists("c:\\abbb",function(isTrue){ console.log(isTrue); if(isTrue) fs.rmdir("c:\\abbb"); else fs.mkdir("c:\\abbb",function(){console.log('create OK');}); }); //太恐怖了 先读再设置事件!! 如何设置添加方法? }*/ const test5 = function () { //module.exports //var ss = require('./ca'); //console.log(ss); //ss.world(); console.log(global.__filename); console.log(__filename); console.log(__dirname); console.log(global.process.argv); console.log(global.process.execPath); console.log("当前目录: " + process.cwd()); console.log(global.process.execPath); console.log(global.process.memoryUsage()); setTimeout(function () { console.log(222222222); }, 1); var w = 0; //var ww = function(){if(w++<100){console.log(22);process.nextTick(ww);} };//证明nextTick并不一定超过setTimeout执行 //ww(); var i = 100; while (i--) { console.log(i); } //console.log(process); process.on("uncaughtException", function (err) { console.log(err); }); process.stdout.write("Hello World!" + "\n"); }; const test6 = function () { var util = require("util"); var V = require("./com/coooders/common/tool"); console.log(new Date().sub("h", new Date().add("d", 1))); console.log(22); /* var father = function(){ var _ = this,__ = {}; __.abc = 22; _.abc = ()=>__.abc; _.bcd = 33; }; father.prototype.test1 = function(){console.log(this.bcd);} var son = function(){this.b = 323;father.apply(this,[])}; util.inherits(son,father); son.prototype.test2 = function(){console.log(this.b);} var son2 = function(){this.c = 444;son.call(this)}; util.inherits(son2,son); son2.prototype.test3 = function(){console.log(this.c);}; son2.test1 = son2.prototype.test1; son2.prototype.test1 = function(){console.log(this.c);son2.test1.apply(this);}; (new son2()).test1(); (new son()).test1(); (new father()).test1(); //可以实现直接的继承,但是私有方法和私有属性无法保存 */ }; /* { var fs = require('fs'); console.log(fs); fs.readdir("D:\\TDDOWNLOAD1\\",function(err,fss){ fss.forEach(function(v){console.log(v);}); }); //结论 目前没有找到搜索在某个目录下所有文件的能力 递归搜索不清楚如何进行 /* fs.unlink("D:\\*.torrent",function(err){ if(err) console.log(err); else fs.readdir("D:\\TDDOWNLOAD1",function(err,fss){ fss.forEach(function(v){console.log(v);}); }); })*/ //结论 只能更新文件名 不能复制文件 可以同盘符移动文件 /* fs.rename("D:\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1","C:\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1",function(err){ if(err) console.log(err); });*/ /* //fs.link("D:\\TDDOWNLOAD1\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1","c:\\abcd.tor",function(err){if(err)console.log(err);}) //类似于同盘符复制 fs.link("D:\\abcd.tor","D:\\abcd1.tor",function(err){ if(err) console.log(err); }); }*/ /* const test8 = function(){ var path = require('path'); console.log(path.basename("D:\\TDDOWNLOAD1\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1")); console.log(path.dirname("D:\\TDDOWNLOAD1\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1")); console.log(path.extname("D:\\TDDOWNLOAD1\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1")); console.log(path.parse('D:\\TDDOWNLOAD1\\abcde\\1F5087B247C40AC71AE4AF9D97687D938FEE95EC.torrent1')); console.log(path.resolve("./main.js")) console.log(path.normalize(".././abc.js")); //console.log(process.versions); } const test9 = function(){ var http = require('http'); http.createServer(function(req,rep){ rep.writeHead(200, {'Content-Type': 'text/html'}); // 响应文件内容 rep.write("Hello World"); rep.end(); }).listen(81,function(){console.log('server start');}); http.request({host:'localhost',port:81,path:'/',method:'post'},function(resp){ var sb = ""; resp.on('data',function(abc){sb+=abc;}); resp.on('end',function(){console.log(sb);}) }).end(); console.log(http); } */ const test10 = function () { const M = require("./com/coooders/net/mime"); console.log(M.get("abc.js")); console.log(M.MIME["mp4"]); var tool = require("./com/coooders/common/tool"); tool.isDebug = true; console.log(tool.isValid("222")); var s = tool.sb(); s.append("22323232"); s.append("111"); console.log(s.toString()); s.appendFormat("a:{a}", { a: 22, }); console.log(s.toString()); //console.log(tool.isArray([])); /* 得到日期年月日等加数字后的日期 new Date().add('h',1)*/ tool.each([1, 2, 3], function (v) { console.log(v); }); tool.forC( { a: 1, b: 2, c: 3, }, function (k, v) { console.log(k + ":" + v); return true; } ); tool.forC( { a: 1, b: 2, c: 3, }, function (k, v, next) { console.log(k + ":" + v); if (next) next(); } ); const I = require("./com/coooders/io/tool"); console.log(I.execDir()); var i = 100; //tool.whileC(function() { return i--; }, function(v, next) { console.log(v); if (next) next(); }); tool.finalC( function (data, next) { tool.once(function () { console.log(10); next(); }, 500); }, function (data, next) { tool.once(function () { console.log(20); if (next) next(); }, 300); }, function (data, next) { tool.once(function () { console.log(12); if (next) next(); }, 1); } ); const once = tool.once; tool.finalC( (data, call) => { once(() => { console.log(1); call(); }, 400); }, (data, call) => { once(() => { console.log(2); call(); }, 200); }, (data, call) => { once(() => { console.log(3); call(); }, 300); }, (data, call) => { once(() => { console.log(4); call(); }, 500); }, (data, call) => { once(() => { console.log(5); call(); }, 100); } ); console.log(6); tool.next( function (data, next) { tool.once(function () { console.log(11111); if (next) next(); }, 500); //测试为true时中断循环 return true; }, function (data, next) { tool.once(function () { console.log(22222); if (next) next(); }, 300); }, function (data, next) { tool.once(function () { console.log(33333); if (next) next(); }, 1); } ); console.log("abc".endWith("c")); console.log( JSON.stringify({ a: 1, b: 2, }) ); console.log( tool.hash( JSON.parse( JSON.stringify({ a: 1, b: 2, }) ) ) ); console.log( tool.merge( { a: 1, b: 2, }, { c: 3, } ) ); var ss = function () { this.name = "1111"; console.log(arguments); }; var ss2 = function () { var _ = this, __ = {}; tool.inherit.apply(_, [ss, [1, 2, 3]]); this.abc = "32222332"; }; var ss2 = eval("(new ss())"); ss2 = tool.create2(ss, [1, 2, 3, 4]); console.log(ss2); /* var create2 = function(type,args){ var ret = '(new '+type+'('; if(tool.isArray(args)){ for(var i in args){ ret+='args['+i+'],' } if(args.length>0){ ret = ret.substr(0,ret.length-1); } } return eval(ret+'))'); };*/ //console.log(global.ss); 暂时无法使用 //console.log(this.create2); var event = require("events"); var ff = function () { event.EventEmitter.call(this); tool.applyCAE(this); this.write = function (ss) { this.emit("data", ss); this.callEvent("data", ss); }; }; require("util").inherits(ff, event.EventEmitter); //此为nodejs内部继承 var f2 = tool.create(ff); //tool.inherit2(f2,ff,event.EventEmitter,[]); console.log(f2); /* var ss3 = tool.create.apply(this,[ss2,[1,2,3,4]]); //ss2 = tool.create(ss,[1,2,3,4]); //Object.create 不可用 //console.log(encodeURIComponent("ddfefesefe")); var event = require('events'); var ff = function(){ event.EventEmitter.call(this); tool.applyCommandAndEvent(this); this.write = function(ss){this.emit('data',ss);this.callEvent('data',ss);}; }; require('util').inherits(ff,event.EventEmitter); //此为nodejs内部继承 var f2 = tool.create(ff); //tool.inherit2(f2,ff,event.EventEmitter,[]); console.log(f2); //f2.on('data',function(data){console.log(data)}); */ f2.registEvent("data", function (data) { console.log(data); }); f2.registCommand("abced", function (data) { console.log(data); }); f2.write("data test"); f2.write("data test"); f2.callCommand("abced", ["ddd"]); /*var ss = function(abc,func){ func.apply(null,[abc]); }; ss('3fjjeisieef',data=>{console.log(data);}); */ //console.log(require('url').parse("http://www.runoob.com/nodejs/nodejs-web-module.html?a=1&b=2")); /*var P = require('path'); var tt = P.parse(P.resolve(P.normalize('./com/coooders/aaaaa/abc/'))); //require('fs').mkdir('d:/a/b/c/d'); console.log(tt); */ //console.log(require('fs')); //I.moveFile('./com/test.js', './com1/test.js').then(() => console.log('move ok!')); /* I.moveDir('./com2', './com1').then(() => { console.log('复制成功'); }); */ }; const test11 = function () { //console.log(require('zlib')); var nettool = require("./com/coooders/net/tool"); //nettool.upload("http://www.zc.com/Module/home/Index.html","D:\\TDDOWNLOAD1\\撤离科威特.mp3",(err,data)=>{}); //console.log(require('url').parse('http://www.hengshuiac.org/Module/home/Index.html')); //nettool.post("http://www.hengshuiac.org/Module/home/Index.html").then(data => { console.log('完成' + data); }); //console.log(' '.trim()); var client = new nettool.WebClient(); //client.get("http://admin.3vjia.com/3D/v2/default.aspx").then((data) => console.log(data)); /*client.get("http://www.hengshuiac.org/Module/home/GetCheckCode.x?&_r=0.4258418398972825").then(function(data) { //console.log(client.cookies); client.get("http://www.hengshuiac.org/Module/home/Index.html").then(function(data) { console.log(client.cookies); }); });*/ //client.postJson("http://www.hengshuiac.org/Module/home/Index.html", { a: 1, b: 2 }).then(function(data) { console.log(client.cookies); }); //client.download("http://www.hengshuiac.org/Module/home/GetCheckCode.x?&_r=0.4258418398972825", './mm.png').then(function(err, data) { console.log('下载完成'); }); console.log("未测试"); nettool .upload( "http://www.hengshuiac.org/Module/admin/UploadFile.x?crossDomain=1", "/Users/baibing/Downloads/公章.jpg" ) .then(function (data) { console.log("上传完成" + data); }); }; const test12 = function () { /*stream 测试学习 V.ArrayStream = function(args){ var _ = this,__={}; stream.Readable.call(this,args); stream.Writeable.call(this,args); _.datas = []; }; U.inherit(V.ArrayStream,stream.Readable); U.inherit(V.ArrayStream,stream.Writeable); V.ArrayStream.prototype._read = function () { var i = this._index++; if (i > this._max) this.push(null); else { var str = '' + i; var buf = new Buffer(str, 'ascii'); this.push(buf); } } //console.log(require('stream').Duplex.prototype); var ss = [5,4,3,2,1] //console.log(ss.splice(0,10)); //console.log(ss.length); console.log(new Array()); var s = new Buffer(ss); console.log(s.toJSON().data); //console.log(require('zlib'));*/ }; const test13 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); //I.createDir('/Users/baibing/a/b/c/d'); //console.log(new P.pool()); //console.log(require('/Users/baibing/work/cv_zc/gcl/com/coooders/io/log.js')); //C.getBaseConfigManager().then(conf => console.log(conf)); C.getApplicationConfigManager().then((cm) => { /* console.log(cm.getConfigValue('AppSettings', 'b')); var m = new M.Middler(cm); let v = m.getObjectByAppName('VESH.view', 'Logger'); console.log(v); v.release(" test "); //console.log(v); v.error("我靠是真的吗? test "); V.watch(); V.once(() => { v.release(" test 111"); V.watch(); console.log(new Date().toString('HH:mm:ss')); }, 4756); m.setObjectByAppName('VESH.view', 'Logger', v); C.getApplicationConfigManager().then((cm) => {}); */ }); /*C.getBaseConfigManager((err,cm)=>{ console.log(222); console.log(cm); }) /*middler*/ /*ni*/ //var I = require('./com/coooders/io/log'); //证明middler框架正式可用 //证明slice复制可用 var ss = function(){console.log(Array.prototype.slice.apply(arguments,[0,arguments.length]));}; const fa = class { constructor(a, b, c) { this.a = c; } test1() { console.log(this.a); } }; const son = class extends fa { constructor(c) { super("aaa", "bbb", c); } }; console.log(new son()); console.log(V.create(fa, ["aa", "bb", "11"])); console.log(V.create2(fa, ["aa", "bb", "11"])); C.getApplicationConfigManagerFromFile(["test.npcf", "test2.npcf"]).then( (cm) => { //C.getApplicationConfigManager().then((cm) => { console.log(C.AppSettings(cm, "b")); var m = new M.Middler(cm); const v = m.getObjectByAppName("VESH.view", "Logger"); //v.error('333 test '); //v.error("我靠是真的吗? test "); //V.watch(); //V.once(()=>{v.release(" test 111");V.watch();console.log(new Date().toString('HH:mm:ss'));},4756); m.setObjectByAppName("VESH.view", "Logger", v); /* console.log(m.getObjectByAppName('VESH.view','Logger2')); return; */ /* const M2 = require('mysql'); const conn = M2.createConnection({ host: '192.168.1.116', user: 'root2', password: '111111', database: 'cv_zc', port: 3306, charset: 'UTF8_GENERAL_CI', connectTimeout: 60000 }); conn.connect(() => { console.log(333); }); //conn.end(); conn.query('SELECT 1 + 1 AS solution', function(err, rows, fields) { if (err) throw err; console.log('The solution is: ', rows[0].solution); }); conn.end(); * / var temp = m.getObjectByAppName('Ni', 'template1'); console.log(temp); temp.execute('ajaxtest11', { limit1: 11 }).then((result) => { console.log(333); console.log(result); if (result.hasData()) console.log(result.last()[0][0]); }); const temp2 = m.getObjectByAppName("Ni", "template"); temp2.execute('ajaxtest33', { data: 'ni test ' }).then(result => { console.log(555); console.log(result.last()); }); mongo mem decarator*/ const res = new N.NiDataResult(); res.add( [ [], null, [ { affected: 0, }, {}, ], ], 0 ); console.log("hasData", res.hasData()); const temp = m.getObjectByAppName("Ni", "template1"); temp .execute("module.gettest", { id: "11", name: "2222", }) .then((ret) => { if (ret.hasData()) console.log(ret.last()); ret.clear(); temp .execute("module.gettest", { id: "11", name: "2222", }) .then((ret) => { if (ret.hasData()) console.log(ret.last()); ret.clear(); }) .catch((e) => { console.log(e.message); }); }) .catch((e) => { console.log(e.message); }); /* const temp = m.getObjectByAppName('Ni', 'template6'); temp.execute('url.test', { args: { productSerialNo: '124', orderId: '222' } }).then(ret => { if (ret.hasData()) console.log(ret.last()[0][0]); }).catch(e => { console.log(e.message); }); /*const temp = m.getObjectByAppName('Ni', 'template2'); temp.execute('ajaxtest22', { limit1: 11 }).then(ret => { console.log(ret); if (ret.hasData()) console.log(ret.last()[0][0]); }).catch(e => { console.log(e.message); }); //参数化 存储过程 out参数 缓存 /* var temp = m.getObjectByAppName('Ni', 'template'); V.next((data, next) => { temp.execute('ajaxtest77', { limit1: 10, a: 15 }).then(result => { console.log(result.last()); next(); }); }, (data, next) => { temp.execute('ajaxtest44', { limit1: 10, a: 15, cacheValue: '3332' }).then(result => { console.log(result.last()); next(); }); }, (data, next) => { temp.execute('ajaxtest66', { limit1: 10, a: 15, cacheValue: '3334' }).then(result => { console.log(result.last()); next(); }); }, (data, next) => { temp.execute('ajaxtest55', { limit1: 10, a: 15 }).then(result => { console.log(result.last()); next(); m.setObjectByAppName('Ni', 'template', temp); console.log('end'); }); }); /* var manager = m.getObjectByAppName('Ni','templatemanager'); manager.execute('template','ajaxtest33',{limit1:2},(err,result)=>{ if(result.hasData()) console.log(result.last()); });*/ /* var no = require('./com/coooders/db/nosql'); var sql = new no.NoSQLParser('?'); //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}); //var ret = sql.parse('insert into abc<a> values(?a)', { a: 1, b: 2, c: 3, d: 4 }); //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 }); //console.log(ret); //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 }); //console.log(ret); //ret = sql.parse('abc<a>.select(*).where(e=?a)', { a: 1, e: 2 }); //console.log(ret[0]); 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 }); console.log(ret[0]);*/ } ); }; const test14 = function () { var M1 = require("./com/coooders/module/tool"); console.log(M1.tcd(22, 112)); console.log(M1.gcd(22, 112)); /* var CryptoJS = require('crypto-js'); var JsonFormatter = { stringify: function (cipherParams) { // create json object with ciphertext console.log(cipherParams.ciphertext); var jsonObj = { ct: cipherParams.ciphertext.toString(CryptoJS.enc.Base64) }; // optionally add iv and salt if (cipherParams.iv) { jsonObj.iv = cipherParams.iv.toString(); } if (cipherParams.salt) { jsonObj.s = cipherParams.salt.toString(); } // stringify json object return JSON.stringify(jsonObj); }, parse: function (jsonStr) { // parse json string var jsonObj = JSON.parse(jsonStr); // extract ciphertext from json object, and create cipher params object var cipherParams = CryptoJS.lib.CipherParams.create({ ciphertext: CryptoJS.enc.Base64.parse(jsonObj.ct) }); // optionally extract iv and salt if (jsonObj.iv) { cipherParams.iv = CryptoJS.enc.Hex.parse(jsonObj.iv) } if (jsonObj.s) { cipherParams.salt = CryptoJS.enc.Hex.parse(jsonObj.s) } return cipherParams; } }; var ss = new GCL.Module.DESXcrypt("dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk", "wjG3Vwmk34U="); var word = ss.Encrypt("abc"); Console.WriteLine(word);//36E8tNE6Yzg= 36E8tNE6Yzg= CryptoJS.enc.Base64.parse('dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk') CryptoJS.enc.Base64.parse('wjG3Vwmk34U=') var data = CryptoJS.enc.Base64.parse('dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk'); console.log(CryptoJS.enc.Base64.stringify(data)); 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}); 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}); //encrypted.process("abc"); //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 }); var ret = encrypted.finalize(CryptoJS.enc.Utf8.parse("abc")); console.log(ret.toString(CryptoJS.enc.Base64)); decrypted.process(CryptoJS.enc.Base64.parse(ret.toString(CryptoJS.enc.Base64))); console.log(decrypted.finalize().toString(CryptoJS.enc.Utf8));*/ var enc = require("./com/coooders/module/des3xcrypt"); var encrypt = new enc.des3xcrypt( "9Xd4M/3bHkhdXXutImJiS4oPuV6UUxvy", "+e/runweeTA=" ); //new enc.des3xcrypt("dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk", "wjG3Vwmk34U="); console.log(encrypt.encrypt("abc")); console.log(encrypt.encrypt("abc")); console.log(encrypt.decrypt("7N1frV26vgE=")); console.log(encrypt.decrypt("7N1frV26vgE=")); console.log(enc.createKey()); console.log(enc.createIV()); /*资料较少暂时取消未找到des3-ECB 选项 var crypto = require('crypto'); var hash = crypto.createHash('sha1'); console.log(hash.update('aadvdfd').digest('base64')); var cipher = crypto.createCipheriv('des3', new Buffer("dQ69muDQO5Xq2I0Q2278+ZTKq/JnecDk","base64"), new Buffer("wjG3Vwmk34U=","base64")); cipher.setAutoPadding(true); console.log(cipher.update("abc", "utf8", "base64")+cipher.final("base64")); */ }; const test15 = function () { /* let range = (n) => n > 0 ? range(n - 1).concat([n - 1]) : []; console.log(range(5)); let c = function(lst, m) { if (m == 1) return lst; else { var ret = []; for (let i in lst) { var tlst = Array.prototype.slice.apply(lst, [0]); tlst.splice(i); for (let w of c(tlst, m - 1)) { //console.log(w); ret.push([lst[i]].concat(w)); } } return ret; } }; /* 0 1 2 0 1 3 0 1 4 0 2 3 0 2 4 0 3 4 1 2 3 1 2 4 1 3 4 2 3 4 * / let p = (lst, m) => { if (m == 1) return lst; else { var ret = []; for (let i in lst) { var tlst = Array.prototype.slice.apply(lst, [0]); tlst.splice(i, 1); for (let w of p(tlst, m - 1)) { //console.log(w); ret.push([lst[i]].concat(w)); } } return ret; } }; console.log(c(range(5), 3)); console.log(p(range(5), 3)); */ }; const test19 = function () { const I = require("./com/coooders/io/log"); console.log(new I.LogRecord().clone()); }; const test20 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); var M2 = require("./com/coooders/net/mime"); //I.createDir('/Users/baibing/a/b/c/d'); //console.log(new P.pool()); //console.log(require('/Users/baibing/work/cv_zc/gcl/com/coooders/io/log.js')); //C.getBaseConfigManager().then(conf => console.log(conf)); C.getApplicationConfigManager().then((cm) => { var Middler = new M.Middler(cm); var temp = Middler.getObjectByAppName("Ni", "template7"); temp .execute("", { text2: "如上内容请引起注意:2232222", // text of the email 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>) to: "baibing0004@sohu.com", // recipients (same format as above), multiple recipients are separated by a comma cc: "", // carbon copied recipients (same format as above) bcc: "", // blind carbon copied recipients (same format as above) subject: "白冰请注意情况2", // string subject of the email attachment: [ { data: "<html><body>错误的信息:请注意消息格式!\r\n</body></html>", alternative: true, }, { path: "/Users/baibing/Downloads/福岛核辐射.jpg", type: M2.get("福岛核辐射2.jpg"), name: "福岛核辐射2.jpg", }, ], // one attachment or array of attachments }) .then((ret) => { console.log(ret.last()); Middler.setObjectByAppName("Ni", "template7", temp); }); }); }; const test21 = function () { var C = require("./com/coooders/module/cron"); // const c2 = new C.Cron("0/5 26,29,33 0 * * 2#2"); //26,29,33 0/5 2#1 const c2 = new C.Cron("0 0 9 * * 2"); //todo 有重载 var date = new Date(); for (let i = 0; i < 10; i++) { date = c2.next(date); console.log(date.toString("yyyy-MM-dd HH:mm:ss")); } console.log("isEnd"); }; const test22 = function () { var V = require("./com/coooders/common/tool"); console.log( V.merge( { a: 1, }, { b: null, }, { c: 0, }, { d: undefined, } ) ); }; const test23 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); C.getApplicationConfigManagerFromFile(["test.npcf", "test2.npcf"]).then( (cm) => { const m = new M.Middler(cm); const temp = m.getObjectByAppName("Ni", "template1"); temp .execute("mssql.test33", {}) .then((ret) => { if (ret.hasData()) { console.log(ret.last()); } console.log("ok"); ret.clear(); }) .catch((e) => { console.log(e.message); }); } ); }; const test24 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); C.getApplicationConfigManagerFromDirSync("./Ni"); // .then((cm) => { // const m = new M.Middler(cm); // console.log(m); // process.exit(); // }); }; const test25 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); C.getApplicationConfigManagerFromFile(["test.npcf", "test2.npcf"]).then( (cm) => { const m = new M.Middler(cm); const temp = m.getObjectByAppName("Ni", "template9"); temp .execute("redishashselect", { mv: "m", aa: "aav", }) .then((ret) => { if (ret.hasData()) { console.log("ret", ret.last()); } console.log("ok"); ret.clear(); }) .catch((e) => { console.log(e.message); }); } ); }; const test26 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); C.getApplicationConfigManagerFromFile(["test.npcf", "test2.npcf"]).then( (cm) => { const m = new M.Middler(cm); const temp = m.getObjectByAppName("Ni", "template10"); temp .execute("redisinsert", { mv: "m", aa: "aav", bb: "bbv", }) .then((ret) => { if (ret.hasData()) { console.log(ret.last()); } console.log("ok"); ret.clear(); }) .catch((e) => { console.log(e.message); }); } ); }; const test27 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); C.getApplicationConfigManagerFromFile(["test.npcf", "test2.npcf"]).then( (cm) => { const m = new M.Middler(cm); const temp = m.getObjectByAppName("Ni", "template10"); temp .execute("redisselect", { mv: "m", aa: "aav", }) .then((ret) => { if (ret.hasData()) { console.log("ret", ret.last()); } console.log(ret); console.log("ok"); ret.clear(); }) .catch((e) => { console.log(e.message); }); } ); }; const test28 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); C.getApplicationConfigManagerFromFile(["test.npcf", "test2.npcf"]).then( (cm) => { const m = new M.Middler(cm); const temp = m.getObjectByAppName("Ni", "template11"); var ret = temp.execute("soaptest", { arg0: "EUCP-EMY-SMS1-08TBV", arg1: "507697", arg2: null, arg3: ["13520493404"], arg4: "【电子地址】白冰,您的验证码是111111", arg5: "", arg6: "GBK", arg7: 5, arg8: 0, }); if (ret) { console.log("ret", ret.last()[0]); } // temp.execute('soaptest', { // code: "378023249405", // imei: "100100100100" // }).then(ret => { // if (ret.hasData()) { // console.log("ret", ret.last()[0]); // // console.log(ret.last()[0]["CsoListModel"]); // // console.log(ret.last()[0]["LogisticsVendors"]["LogisticsVendorModel"][0]); // } // ret.clear(); // }).catch(e => { // console.log(e.message); // }); } ); }; const test29 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); C.getApplicationConfigManagerFromFile(["test.npcf", "test2.npcf"]).then( (cm) => { const m = new M.Middler(cm); var d = new Date(); console.log(d.getMinutes(), d.getSeconds(), d.getMilliseconds()); const temp = m.getObjectByAppName("Ni", "template10"); temp .execute("redistransinsert", { mv: "m", aa: "aav", bb: "bbv", mv2: "m", aa2: "aav", bb2: "bbv", }) .then((ret) => { if (ret.hasData()) { console.log(ret.last()); } console.log("ok"); ret.clear(); }) .catch((e) => { console.log(e.message); }); // temp.execute('redisinsert', { // "mv": "m", // "aa": "aav", // "bb": "bbv" // }).then(ret => { // if (ret.hasData()) { // console.log(ret.last()); // } // console.log('ok'); // ret.clear(); // console.log(d.getMinutes(), d.getSeconds(), d.getMilliseconds()); // }).catch(e => { // console.log(e.message); // }); } ); }; const test30 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); C.getApplicationConfigManagerFromFile(["test.npcf", "test2.npcf"]).then( (cm) => { const m = new M.Middler(cm); var d = new Date(); console.log(d.getMinutes(), d.getSeconds(), d.getMilliseconds()); const temp = m.getObjectByAppName("Ni", "template10"); temp .execute("redistransselect", { mv: "m", mv2: "m2", }) .then((ret) => { if (ret.hasData()) { console.log(ret.last()); } console.log("ok"); ret.clear(); }) .catch((e) => { console.log(e.message); }); // temp.execute('redisinsert', { // "mv": "m", // "aa": "aav", // "bb": "bbv" // }).then(ret => { // if (ret.hasData()) { // console.log(ret.last()); // } // console.log('ok'); // ret.clear(); // console.log(d.getMinutes(), d.getSeconds(), d.getMilliseconds()); // }).catch(e => { // console.log(e.message); // }); } ); }; //test23(); const test31 = function () { var V = require("./index"); console.log(V); console.log("&a=1&b=&".trim("&")); }; //test31(); const test32 = function () { var V = require("./com/coooders/module/cron"); const c = new V.Cron("0 0 0,4 * * ?"); for (var i = 0, dt = new Date(); i < 4; i++) { dt = c.next(dt); console.log(dt.toString("yyyy-MM-dd HH:mm:ss")); } }; const test33 = function () { var V = require("./index"); //pri方式的确可以继承父类的私有方法,类似实现了protected关键词,但是限制同一个文件,且旧函数中仍然引用旧的对象。 new V.Net.test333().test(); }; const test34 = function () { var V = require("./index"); //pri方式的确可以继承父类的私有方法,类似实现了protected关键词,但是限制同一个文件,且旧函数中仍然引用旧的对象。 V.Net.post("https://c1.blueblue.cc/api2/getProducts.string", { PageIndex: "0", PageSize: "10", status: "1", sessionID: "8900bd95f1340d1cd0a537249d835eb7", }).then(function (ret) { console.log(ret); }); return false; }; const test35 = function () { var V = require("./index"); const data = []; for (var i = 0; i < 50000; i++) data.push(i); let count = data.length; V.each( data, function (v, call) { console.log(v); count--; //if (count == 2332) throw new Error('2222'); V.once(call, 100 * Math.random()); }, 1000 ) .then(function () { console.log(count); }) .catch(function (e) { console.log(e.stack); }); }; const test36 = function () { var C = require("./com/coooders/io/config"); var M = require("./com/coooders/bean/middler"); var N = require("./com/coooders/db/ni"); var V = require("./com/coooders/common/tool"); let P = require("./com/coooders/collection/pool"); var I = require("./com/coooders/io/tool"); C.getApplicationConfigManagerFromFile(["test.npcf", "test2.npcf"]).then( (cm) => { const m = new M.Middler(cm); /*const temp = m.getObjectByAppName('Ni', 'templateredis'); temp.execute('redis.inserts', { "key": "s_test2", "value": V.toJsonString({id:(+new Date())}) }).then(ret => { if (ret.hasData()) { console.log("ret", ret.last()); } console.log(ret); console.log('ok'); ret.clear(); }).catch(e => { console.log(e.message); });*/ /* const temp = m.getObjectByAppName('Ni', 'templateredis'); temp.execute('redis.selects', { "key": "test1", "value": "test" }).then(ret => { if (ret.hasData()) { console.log("ret", ret.last()); } console.log(ret); console.log('ok'); ret.clear(); }).catch(e => { console.log(e.message); });*/ /*const temp = m.getObjectByAppName('Ni', 'templateredis'); temp.execute('redis.deletes', { "key": "test2", "value": "test" }).then(ret => { if (ret.hasData()) { console.log("ret", ret.last()); } console.log(ret); console.log('ok'); ret.clear(); }).catch(e => { console.log(e.message); });*/ const temp = m.getObjectByAppName("Ni", "templateredis"); // temp.execute('redis.inserth', { // "key": "test4", // "value": V.toJsonString({ a: 44, b: 5, id: '356455' }) // }).then(ret => { // if (ret.hasData()) { // console.log("ret", ret.last()); // } // console.log('ok'); // ret.clear(); // }).catch(e => { // console.log(e.message); // }); // temp.execute('hlen from inserth<key>', { // "key": "test3", // }).then(ret => { // if (ret.hasData()) { // console.log("redis.hlen", ret.last()); // } // console.log('ok'); // ret.clear(); // }).catch(e => { // console.log(e.message); // }); // temp.execute('redis.selecth', { // "key": "test3", // }).then(ret => { // if (ret.hasData()) { // console.log("redis.selecth", ret.last()); // } // console.log('ok'); // ret.clear(); // }).catch(e => { // console.log(e.message); // }); // temp.execute('redis.expire', { // "_datetime": 20000, // "datetime": 300000 // }).then(ret => { // if (ret.hasData()) { // console.log("redis.expire", ret.last()); // } // console.log('ok'); // ret.clear(); // }).catch(e => { // console.log(e.message); // }); // const temp = m.getObjectByAppName('Ni', 'templateredis'); // temp.execute('redis.getdbs', { // "key": "htest2", // "value": V.toJsonString({ a: "a", b: 5, id: '356455' }) // }).then(ret => { // if (ret.hasData()) { // console.log("ret", ret.last()); // } // console.log(ret.single()); // console.log('ok'); // ret.clear(); // }).catch(e => { // console.log(e.message); // }); //const temp = m.getObjectByAppName('Ni', 'templateredis'); /** * * @desc 扣减库存Lua脚本 * 库存(stock)-1:表示不限库存 * 库存(stock)0:表示没有库存 * 库存(stock)大于0:表示剩余库存 * * @params 库存key * @return * 0:库存不足 * -1:库存未初始化 * 大于0:剩余库存(扣减之前剩余的库存) * redis缓存的库存(value)是-1表示不限库存,直接返回1 */ // temp.execute('redis.hngcrby', { // "ID": "htest2", // "_value": 8 // }).then(ret => { // if (ret.hasData()) { // console.log("ret", ret.last()); // } // console.log(ret.single()); // console.log('ok'); // ret.clear(); // }).catch(e => { // console.log(e.message); // }); /* const temp = m.getObjectByAppName('Ni', 'templateredis'); temp.execute('redis.deleteh', { "key": "htest2", "value": V.toJsonString({a:"aa",b:55,id:(+new Date())}) }).then(ret => { if (ret.hasData()) { console.log("ret", ret.last()); } console.log(ret); console.log('ok'); ret.clear(); }).catch(e => { console.log(e.message); });*/ // const temp = m.getObjectByAppName('Ni', 'templateredis'); temp .execute("redis.insertz1", { key: 11, //V.toJsonString({ a: "aa", b: 11, id: (+new Date()) }), Gen: parseInt(Math.random() * 100), value: V.toJsonString({ a: parseInt(Math.random() * 100) }), }) .then((ret) => { if (ret.hasData()) { console.log("insertz", ret.single().value); } console.log("1338 ok"); ret.clear(); temp .execute("redis.selectz1", { key: 11, //V.toJsonString({ a: "aa", b: 55, id: (+new Date()) }), // "score": parseInt(Math.random() * 100), // "limits": 3 }) .then((ret) => { if (ret.hasData()) { console.log("selectz", ret.last()); } console.log("1369 ok"); ret.clear(); }) .catch((e) => { console.log(1392, e.stack); }); }) .catch((e) => { console.log(1362, e.message); }); /* const temp = m.getObjectByAppName('Ni', 'templateredis'); temp.execute('hkeys value from a<>', { "key": V.toJsonString({ a: "aa", b: 55, id: (+new Date()) }), "score": parseInt(Math.random() * 100), "limit": 2 }).then(ret => { if (ret.hasData()) { console.log("ret", ret.last()); } console.log(ret); console.log('ok'); ret.clear(); }).catch(e => { console.log(e.message); });*/ //const temp = m.getObjectByAppName('Ni', 'templateredis'); // temp.execute('redis.deletez', { // "key": "{\"a\":\"aa\",\"b\":11,\"id\":1587991635544}", // }).then(ret => { // if (ret.hasData()) { // console.log("ret", ret.last()); // } // console.log(ret); // console.log('ok'); // ret.clear(); // }).catch(e => { // console.log(e.message); // }); // //const temp = m.getObjectByAppName('Ni', 'templateredis'); // temp.execute('redis.insertl', { // "key": 'dsd' + parseInt((Math.random() * 20)), // "score": 1, // "limits": -300 // }).then(ret => { // if (ret.hasData()) { // console.log("ret", ret.last()); // } // console.log(ret); // console.log('ok'); // ret.clear(); // }).catch(e => { // console.log(e.message); // }); // temp.execute('llen from alist<key>', { // "key": "test3", // }).then(ret => { // if (ret.hasData()) { // console.log("redis.llen", ret.last()); // } // console.log('ok'); // ret.clear(); // }).catch(e => { // console.log(e.message); // }); /*const temp = m.getObjectByAppName('Ni', 'templateredis'); temp.execute('redis.selectlpop', { "key": 'dsd'+parseInt((Math.random()*20)), "score": 1, "limits":-300 }).then(ret => { if (ret.hasData()) { console.log("ret", ret.last()); } console.log(ret); console.log('ok'); ret.clear(); }).catch(e => { console.log(e.message); });*/ /*const temp = m.getObjectByAppName('Ni', 'templateredis'); temp.execute('redis.deletel', { "key": '{"key":"dsd14"}', "score": 1, "limits":-300