{"_id":"lifekit","_rev":"25-64c4f098c35f0999c4a6c9edd00971d1","name":"lifekit","description":"物联网应用模块的最小化平台支撑(基于KOA实现)","dist-tags":{"latest":"1.0.23"},"versions":{"1.0.0":{"name":"lifekit","version":"1.0.0","description":"lifekit","main":"app.js","directories":{"bin":"./bin"},"dependencies":{"body-parser":"^1.15.2","commander":"^2.9.0","connect":"^3.4.1","cookie-parser":"^1.4.3","ejs":"^2.4.2","errorhandler":"^1.4.3","express":"^4.14.0","express-session":"^1.13.0","socket.io":"^1.4.6"},"devDependencies":{},"bin":{"smart-iot":"./bin/lifekit"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["iot","lifekit","home","smart"],"author":{"name":"liujiangnan"},"license":"ISC","_id":"lifekit@1.0.0","_shasum":"08913afb854c8795270bd57146d5775e8f96121e","_from":".","_npmVersion":"3.9.6","_nodeVersion":"4.4.4","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"shasum":"08913afb854c8795270bd57146d5775e8f96121e","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.0.tgz","integrity":"sha512-xdy6vxzSfzwaIUJSmZb0mU5XbrO/TGMBPYge7dGsc8rNZoDIG9a2xcPcM1mTgeEeP1g6ry919DGY1RwBWbL2lQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAsYtBbwrGE2y+0H6k+g0MK9aqPGfRwFN6eJYz+zurSAIgE/6O/P19K9GZK/G+PUakbguCYYgqxq8BMtvsDDvFRNQ="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/lifekit-1.0.0.tgz_1470817305277_0.07722395495511591"}},"1.0.1":{"_args":[["lifekit","/Users/zhy/WebstormProjects/lifekit"]],"_from":".","_id":"lifekit@1.0.1","_inCache":true,"_installable":true,"_location":"/lifekit","_nodeVersion":"5.4.0","_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/lifekit-1.0.1.tgz_1471685544269_0.6553046596236527"},"_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"_npmVersion":"3.3.12","_phantomChildren":{},"_requested":{"name":"lifekit","raw":"lifekit","rawSpec":"","scope":null,"spec":"*","type":"range"},"_requiredBy":["#USER"],"_resolved":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.0.tgz","_shasum":"43a63308ddf913b93e9ee515887ce03be795850c","_shrinkwrap":null,"_spec":"lifekit","_where":"/Users/zhy/WebstormProjects/lifekit","author":{"name":"liujiangnan"},"bin":{"lifekit":"./bin/lifekit"},"dependencies":{"body-parser":"^1.15.2","commander":"^2.9.0","connect":"^3.4.1","cookie-parser":"^1.4.3","ejs":"^2.4.2","errorhandler":"^1.4.3","express":"^4.14.0","express-session":"^1.13.0","socket.io":"^1.4.6"},"description":"lifekit","devDependencies":{},"directories":{"bin":"./bin"},"dist":{"shasum":"43a63308ddf913b93e9ee515887ce03be795850c","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.1.tgz","integrity":"sha512-a/EPAXfWTo0thX2MnppUL7rI+MbVrO25t80nVl7XU8uYRjxAyFzjIchaOs44pdWrzPwcY3TzmxyaZCiGi/Dtog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeKfZ0Masb4RT+QdZgGuVZvHt5OlDVKnTBYZcxRRS2VQIgKASjps6UAaeTxRtnIouRTu/2wkyxSCUJoOhQmXILZls="}]},"keywords":["home","iot","lifekit","smart"],"license":"ISC","main":"app.js","maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"name":"lifekit","optionalDependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","start":"lifekit start"},"version":"1.0.1","gitHead":"7c0df39863d76d620d1ad795458761eb4da8f3db"},"1.0.2":{"name":"lifekit","version":"1.0.2","description":"物联网应用模块的最小化平台支撑(基于KOA实现)","main":"index.js","dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"devDependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["lifekit","iot"],"author":{"name":"liujiangnan"},"license":"ISC","_id":"lifekit@1.0.2","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-KS9b9rg5ZSoPV/BkbN14cM5ZiCEDYb5D35R7qQvP/wQRo6a6fA3WP1HNAjnb32utysVMPYSSRSgG0u01IDEOLA==","shasum":"7b54c3e8fd003e44beb360164438029fd0cf0366","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTluimxp5znvdPN75soDu7KzU2Azm3BW/s9zFz4oDL6AIhAP/hO7TAAN2MrpqTfRyYDdA68fcmmJxM27oK6HDjujup"}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.2.tgz_1504696103209_0.019309716066345572"},"directories":{}},"1.0.3":{"name":"lifekit","version":"1.0.3","author":{"name":"liujiangnan"},"bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_id":"lifekit@1.0.3","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-BrUtaXUtBxfpoCSjo+AzGgu/Qi5jHDzBNLPSjD6ViwyVbVp2Ayr8GTqb9F8BYGG54jWMMubdVBn5ls6LwHfptA==","shasum":"484f0efca5bd3d4107cb1b0596e714cda6229063","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFitF7VaKPr+IiXut2P8AxP9IVXv/YD5wN0YgL5sgmI2AiEA4Q1FHBO+RW20kYOlHsDshZ0hYlKsexTQqduiOpowkYY="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.3.tgz_1504698874175_0.014481601770967245"},"directories":{}},"1.0.4":{"name":"lifekit","version":"1.0.4","description":"物联网应用模块的最小化平台支撑(基于KOA实现)","author":{"name":"liujiangnan"},"bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","socket.io":"^1.7.3","socketio-jwt":"^4.5.0","object-keys":"^1.0.11"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"main":"index.js","license":"ISC","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_id":"lifekit@1.0.4","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-2BzbHiuqwJ6g7hllZaRFbMZLLXWJKkAqDYFJaMeuq7KIN/u2Ujf7FYdfMFyvnX0ajwcyvC6arfUeme40HvSUkQ==","shasum":"863402ac960c423858e9fd913cff0878d074a854","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6RZ8GJz/hS+nKZwDaAZF78lqvAOAt0Y5v22YkS7LR5QIhAPjrJGtxx5wsKVENjbaJPHzwwdH8Cf2OFCZZhZZ1L/TI"}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.4.tgz_1504751318065_0.902753476286307"},"directories":{}},"1.0.6":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.6","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"gitHead":"bc0ae14d0f882ada25b1da4ec9608d4cd84f01b6","_id":"lifekit@1.0.6","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-IUc95eLIcNt6B9eMcquj/uEZH50YQiHgcaKDqiFMoP7akgTQEEc5yozIMc5gVjNb9ZDmtEdJNqTmTH8TKUNjMg==","shasum":"71051b467151d6c4b017cf38a1af2910ea359bd8","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTrDsWOkHq+wpSEdQl49fkHSw8Zv7exy3EQhfZU34yHQIhAIEvlIlKK7w5UBx36i+rQZKTPS75ugSnQIQunVDKouBH"}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.6.tgz_1505125221474_0.6925140065141022"},"directories":{}},"1.0.7":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.7","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"gitHead":"2c07244ae746ed52df2bf4fa7b11dd21e8438e21","_id":"lifekit@1.0.7","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-MhKH/vmvE8n6CJDeoL6wLj46JCM9UFQ+l+eAkh7ECe+QRLcUhqzkpRo9liyqiBo4GYyIyTCjXpwiPKnyJKOsBg==","shasum":"62821f38993fea756f9cd83b492409d0ad3bbb46","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/fu2oofs03R73nDyCeyrM1+ZHiwHzR1gzxTzg1lrj2AIgd10Ak86VNloCQJPleXyqDiiV6DD1fvUvBQLPFeW+734="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.7.tgz_1505199941454_0.46341757848858833"},"directories":{}},"1.0.8":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.8","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"gitHead":"2c07244ae746ed52df2bf4fa7b11dd21e8438e21","_id":"lifekit@1.0.8","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-HTu12Wcgdn/d6Jm1j+dmSCnn+KrilYwZ+C1WWyBk/N7hBJnW97I1rPxRA25A3XGK3SlmzzjfyONBKee0Ks1O2g==","shasum":"5adfe2299cb84278d80b08aa911c35574391c970","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCx7RDQIZgZgRL3ZprAs1ZysL5zuuZoautwqmFnzKrlHQIhAI/OtjwydcyhK5H98vogFH5eTdtpDebO+HzHugcpU7aG"}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.8.tgz_1505453324057_0.6467384959105402"},"directories":{}},"1.0.9":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.9","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"gitHead":"23508500633dd154e55dbffc3c3ec98dd3312915","_id":"lifekit@1.0.9","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-qDmTFtjvzJYqcgpZwOJCak32jHw3fFrd5+519LBUf+5nFqdhZRwZfrxAYNEaI9rm9kovaaeAYumMxDA0wS1uOg==","shasum":"f5f87b904e2cc1735c1486d38c814d73ecae8686","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.9.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVgIdyf6fP7BPD0j3OJi2L+RiN9qJWLdGiiJa0qS4YbgIhALwLLsIAo0otF/KYodrqtxr9nSreUX7xLxEzdZFUDcKP"}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.9.tgz_1505802590946_0.1670968416146934"},"directories":{}},"1.0.10":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.10","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"gitHead":"cab193d31daf3ec64d3f63ffdd6d83f85c798fb8","_id":"lifekit@1.0.10","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-X51beSic8KPPAPd6F1APlS7qdXNIIk72c5zm+oHFuM3HKVyBDPybgGDFzqr+D1JakhUleBMzi8tuh0Q91b0gfw==","shasum":"b3c7ac485baed60cae8269c7c0046e1429d1f235","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.10.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGCayEMkGf13Lf8FIdIuZiWj4wUxEUDmL3QKyaWppNUfAiEAtJnJMdMi6oUSjY2f4epzAuFSSw3UExmQI7V49402ksw="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.10.tgz_1505802839446_0.999155142577365"},"directories":{}},"1.0.11":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.11","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"gitHead":"645916dafec19da4dc82b39dfe41e9c3b3a45e2d","_id":"lifekit@1.0.11","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-veTyA+RzmeA4G0wUk2ZggxM37LTC2CQmcg/i54RkcSh01IBS9BLxa0k8r5ialEiu/b37dm9Qs5Erz2SPdMScvA==","shasum":"fc0217da469e9203ad0e9c98201154d6816ea753","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.11.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6z2qy9K6tyEFdUGIwtXHzJN4MS/mJrQ9JXknqh/gSSAIhAMUFArgunMaUjcjCxZMqQrRe57J2X9KHgYwl184BInjC"}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.11.tgz_1506393067821_0.7354615884833038"},"directories":{}},"1.0.12":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.12","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"gitHead":"7d9e1642b05d44d6062476e51d2e1118af9f1b50","_id":"lifekit@1.0.12","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-385mTXfgoApNRY6LTPhPNX69jmXmTze6QqauSSUEV7wdthOjy4yUqQpkwBGADe3j46vBNhiPd5hAA4fwLm1ocg==","shasum":"55b7579eb7b2cbe4acdfdfbc91266e295ddff1df","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.12.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFyV9LcyL/4axyVRLBXCJYVHfa513cgN27VM8BXO985AIhAOfcwfkzw0irp+g2FRwwsNFEbczMkOTX/HFSbmvZgqGL"}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.12.tgz_1506394772414_0.015704342862591147"},"directories":{}},"1.0.13":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.13","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"gitHead":"e71b711763af6d257cefc605ad7b4c48f2db96b7","_id":"lifekit@1.0.13","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-IBQzqIyhtHk9OChbjIPm+Ph3AgcWJnU0TgyZWl0U01KzfSyHgaWBj7XxZzcVYcXA5bW7oZfDyheE7nVHVCSx+A==","shasum":"af96b070ed7baa7131ca3e61e167e26b5850c349","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.13.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAY5YgWKT1+2CaNuBWHcPyXbayDJgjTxp1Lgfy7kvHntAiBfdGgdOQzcxqH8SN/c6gnj9XWiGYhM5mhSStYS92qvtA=="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.13.tgz_1510805867020_0.8250737488269806"},"directories":{}},"1.0.15":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.15","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-bodyparser":"^3.2.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_id":"lifekit@1.0.15","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-yXwlJi6iaVwU4iJlhcOJ2P8odF6xQt75u7Gk2ZfMetM8nM3WZDqzhgMoa87j8j5uDzwJK+fyiMg7SMIGdcAdfg==","shasum":"1289cbb51199963627a259e256f1255d5c534ff5","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.15.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH/VziTljSrfzO4x3I0zYPCLrMT7+rmRX718MWk/+C6dAiBh33RPfUDUYyPH/mu3UGF+7bhAGeT93Gk3ul4OtW6ktQ=="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit-1.0.15.tgz_1513917602794_0.9857333502732217"},"directories":{}},"1.0.16":{"name":"lifekit","author":{"name":"liujiangnan"},"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","version":"1.0.16","bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-body":"^2.5.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","object-keys":"^1.0.11","node-uuid":"^1.4.8","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_id":"lifekit@1.0.16","_shasum":"c49f37391721e462e84892ebcfbb77f1f73b7efc","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.8.0","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"shasum":"c49f37391721e462e84892ebcfbb77f1f73b7efc","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.16.tgz","fileCount":21,"unpackedSize":2391009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1FG3CRA9TVsSAnZWagAAsP4QAIyeNxiAGXaZw4n+p7ZL\ntI0PdH/5nTYcmV3hnTC+UNAb8fXvDpjzjMvbydyzqAxsq+UbBikETEfWFq4c\ngFGHpgYelmYcJ3DfHZiiT+M2P7njKScZOgWHHj7zs03EppFE6V/r+E9LARx8\njM9dkPXAAy/QGcNJ6SnxbLaoOK6D1cXYt2/76fQ3HmLUsFEDrtdpCQOSYuUF\nI23HBgNfuqOodyVymVCcDYj/V2DolMAiy5IT3zy2lwEYO0LKMIAAdztJN//h\nHmxm5IkfdH2cF8YwwLMWs7HunE4AQ/WH2TW5ORyNAxLC7XVrXT5ZRFsbmyry\ns+IYiMlwoH/NrlFb4iI3QZVPN426AnJO4o3WkjbmiRUzgpLIoUe98sY//PD/\nQc4w2HdgZEeak9v4jKCPuweYZTkxkCZY8TCKqjU1RNw5wdQk3iQNIXdlOgP6\nfrUed4ZMrWUaCCTdmYGmsm01qMJKuYsvRAGLtbh69qTOrJfge10Qn/DfMElV\ndbfg1zCCpojRNGMv5HUZewfWW+5/BgYSkLSNtgi5fom4+6wSns595AaHcJup\njvID8OBD/Ikw5IF7ewQY8gaSU/9/RwX+TRBuzNUD9MN1B1Ljkn2Iwzmg5Q8Q\n6eIJAcktkQwjM8HzISNnU4kUNmhR0/uWj0I1mykZHOKzqMnrKVkEMMS7hR0k\nnCyU\r\n=vdfr\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-nL72bxNfEJr9Svn5Pp3PXjZIcd+rHf2THNIM1X4FEsrIaKvafCb+JZhm2Cv056pFV78yVDYE/+fDXv90jqlV5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAuYPd+L4h3786AtvxPBAkUCHJLWaXMznhbAyCKvLbJDAiEArkmvjAyr9NqcBtwOhiW61+NYXGTsBXxz0KZeJwKh1sU="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit_1.0.16_1523863990360_0.17830512586622604"},"_hasShrinkwrap":false},"1.0.17":{"_from":"lifekit@^1.0.13","_id":"lifekit@1.0.17","_inBundle":false,"_integrity":"sha1-xJ83ORch5GLoSJLrz7t38fc7fvw=","_location":"/lifekit","_phantomChildren":{},"_requested":{"type":"range","registry":true,"raw":"lifekit@^1.0.13","name":"lifekit","escapedName":"lifekit","rawSpec":"^1.0.13","saveSpec":null,"fetchSpec":"^1.0.13"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.16.tgz","_shasum":"c49f37391721e462e84892ebcfbb77f1f73b7efc","_spec":"lifekit@^1.0.13","_where":"E:\\iotWorkSpace\\freehome","author":{"name":"liujiangnan"},"bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-body":"^2.5.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","node-uuid":"^1.4.8","object-keys":"^1.0.11","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","name":"lifekit","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.0.17","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-ugIXa3DrtLdt4mMH47eMjzyRVStfDmV/r2lGpeyQHp65wzLOVA/KuwvScwijSV1k2ERGZDflH1BZiq8OwxZSiQ==","shasum":"f1ac44ead3c3515fe62a4bf4c23252014f7fee61","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.17.tgz","fileCount":21,"unpackedSize":2391843,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBqQfCRA9TVsSAnZWagAATngP/jLDYofneI6ljBtjflhK\n0e3m5VHpmM1Q3sckJxdlp1iC9Yqyx2LJN8D9ZOUa+0OsHbbGZg+ZuIbFnut6\no7aGyO/c0rnS5Ttx4KQgw5DA1Zxp9nR0yGjPLx+ScCLWhDQ7n3JVYJrWLFT0\nkclZecFuet86NHCg7EqzLgu0d6dx5+T1i9D+QnnD3DwDiQi9OljRHs2Wd9zJ\ntEr9MNvVr158lKTRR4V4vLQwse/VqmNoN1jjgCgGqGuxIyi7bDq5vOHTss9t\ngLT7FefMSLWFWrmKzK1Vrw/7Ya1JWNnIRmTw1haPMudKKJ5i1uk/lm0qBLJM\n8XmB5VD9HnuVEmPqB8sWgBAR3C0pSBLdkERw2FvGvyjnGnLtt3GQw2p0YMO+\nszWTnvBYzlVJEcbY1hIckWdG5u0Ffnlo/+NrEU7YeAFtJlrOMMCET5JoCOWJ\nT1ZWfYzYA34qwI5+YAmqRc/VM2JH/mlS1QJyke+N/PPP7dCS97FbFfuix0BF\nUruKI6IspR3AmS2pyqrdEwxPpbejwzAJcft578xPCuJhATvAKFU5BU/6UJPb\nawkIr1LnClh0eAKAHSljHiHaGkp3wv5LN00KsAibzLhUO67kIbMYlT7rQUjW\nyyYTot7CU7G32+M1WGO1ffZNB8nVTFu/+u0IK0YnY9ud2G/YTbY8g19IlS6S\nfWtm\r\n=FC0L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuD3GESAe9aEGFJuih30ehC01gu+vzTFNI6AyXj/yDTwIgI5n60RMwOscTycaaOQOAc4qs+8yfxjSuSXSn5ArGwqk="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit_1.0.17_1527161886651_0.9592675992282247"},"_hasShrinkwrap":false},"1.0.18":{"_from":"lifekit@^1.0.13","_id":"lifekit@1.0.18","_inBundle":false,"_integrity":"sha1-xJ83ORch5GLoSJLrz7t38fc7fvw=","_location":"/lifekit","_phantomChildren":{},"_requested":{"type":"range","registry":true,"raw":"lifekit@^1.0.13","name":"lifekit","escapedName":"lifekit","rawSpec":"^1.0.13","saveSpec":null,"fetchSpec":"^1.0.13"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.16.tgz","_shasum":"c49f37391721e462e84892ebcfbb77f1f73b7efc","_spec":"lifekit@^1.0.13","_where":"E:\\iotWorkSpace\\freehome","author":{"name":"liujiangnan"},"bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-body":"^2.5.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","node-uuid":"^1.4.8","object-keys":"^1.0.11","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","name":"lifekit","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.0.18","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-OHuJywKU3emufEL9/l77wq98QVgI5upK5K/ot57cMDijCQiakc4Y2BUdSMqZW3OSSHtS+HjH819m3Oi4+O6DzQ==","shasum":"4093c4d75cd48ca9d1d819dbc4dcd1918a78f26e","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.18.tgz","fileCount":21,"unpackedSize":2391861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbB+6oCRA9TVsSAnZWagAAvP4P/2PUsokD8ELLwc7T/zfG\npc6HEHEQMtJRgdDhG/6KnBEyQCHx6W/78mdKMM0TYYAIsHEeGoPZ4HkLLOL8\nzqxqY3Lqrsh7M/AjN6NHoWgBD8sLFOSLj8MGwArD1N4+k5SQCvSCpwOMuxmE\nF0W94ubFLuLV77bdjtXOqhPmhSbQFrBXbmuwOOpjVttyXHEX7TiAnLF9ZokO\nrEvJI9gwtQdjXHT/Pa1iL+HPahH3V1XHMi1pJhlENKqE8XQyZqCXSUy1CHj6\n/dNP441oRC7MPp8cLaDlfA1mvL+qTzNJIa84qcUTfSJSGEg0QGrL/gcR3mRZ\nZJU764YJ1OTPz+3vYJS2AVspM0fFOukw9EthaDD5m974Ew0w0jukXxENf6rd\nXAtIxr5ti74QnCEoBwUPUwZfuHkNBF1MxHuesXhlb/hMN9TCdi90eb/fEq0+\nIRSqyo6PKk4gVo37NtXQ0FETPRgP0S7n3wGzGy4kyR/Cd8xOl46Kzhw5+DVr\nmB0faDcmPwvUI8Fl+Bf3l1tgkkbMVSYs/twkaPQXSwwXV8OV+R6iKq9KuGA+\nMGNn7SdazfaG8BRgMweyoEUzp4lznTZ+lMH5ZB9lDWKlnp2inTSK+M0ml4Wx\nkOZYAa+g4nryBs+zXL9FT0w742xsrFz4/aufVJrad1lfaAW6jnQlNYJrzsG7\n9JIi\r\n=wlgp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDoa0fuVdVTRFOJhH5p2HNCKPVrYP/ETIp7VB8ePoJuwIhAKM8bxHnU+pwkuf+6StAOUA/+HBWLL4UEELTcH6h21RT"}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit_1.0.18_1527246504202_0.3480643065064448"},"_hasShrinkwrap":false},"1.0.19":{"_from":"lifekit@^1.0.13","_id":"lifekit@1.0.19","_inBundle":false,"_integrity":"sha1-xJ83ORch5GLoSJLrz7t38fc7fvw=","_location":"/lifekit","_phantomChildren":{},"_requested":{"type":"range","registry":true,"raw":"lifekit@^1.0.13","name":"lifekit","escapedName":"lifekit","rawSpec":"^1.0.13","saveSpec":null,"fetchSpec":"^1.0.13"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.16.tgz","_shasum":"c49f37391721e462e84892ebcfbb77f1f73b7efc","_spec":"lifekit@^1.0.13","_where":"E:\\iotWorkSpace\\freehome","author":{"name":"liujiangnan"},"bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-body":"^2.5.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","node-uuid":"^1.4.8","object-keys":"^1.0.11","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","name":"lifekit","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.0.19","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-ARobDGTF998f5tcjHecofr9VT70kmob8wYT8wdFc6Y/bRnApoVJH9hUrdoN+6mBC52D8MMllIaJ2BGMwDORkIA==","shasum":"2e20aa8ab167bdade036f901919474a82ebaabfc","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.19.tgz","fileCount":21,"unpackedSize":2391962,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbC8PpCRA9TVsSAnZWagAArvUQAJYR2ULEtouoWJHehrDL\nUNgdyEZJr6PcgYJ+KPHYw5OjbL6C9PqMF9jBk4s7HoO6Wndg1Y/08VgNAixY\nouPpnOlFdrOOLmvfNNlA5ETeVMA859R/eKITIiuMY6Oj1PjoE2JBDT7mw4aP\ndk10Uu7g6zh6PMwPZvA6A1kTHS3esxBhTkZcIaouvIgPgomKSZaIj7XwNkuH\nQfzD5f80NIuddCFQSRrgk3iU0WTlrVR01xIQkH3Kg13/Lmnh6kv6dR5k1A8D\n5tRPnzw+1KrmstfBl8vO4gmg63sUC9Jpx08v6fOihdR0wOgfXCHuwD5WBtFQ\n4PpvuBenQ0C5NtnFAAgQmDgAbhGNZKWfGcz7ZRTShmIUDoieCEkmHbh1zpG2\nwrF59IxRUI2/LyS1VrfQ7zOUsRDyJUQE934GsWWNhgUzoAgURlEZs/GPQpyF\nqHzfenCt2RCK5I6QkOJlEgnrskIh8fr/JTDEg0xJDF+SMuq51bXUaUbjfXYi\n47M8GmGS8QJowpAnUSuwIO9zWOih/vVcWgup3evvKs1QDUqD9RueI5KaPHWh\n490+dup9lCOElxEeeTacLftKyOw5ZNyKLprqyDnALldGKBxT0V/dPD1TMUS2\nBv55WejbLTf6aeI0zTS/ssQDE7qjxuOQ2Q3OTnFZOp+pCbYJkzPuzLuHyinw\ncsbZ\r\n=agIN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHVa9GkIzNtbf1XTe0HQB7YgMi/EJMV1Dic/o0xh42WuAiEAkjiKgMqMhsAcWSjbjIYO5uxy/IDkQeXNy4HlVx4sSVM="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit_1.0.19_1527497704243_0.9572962886434282"},"_hasShrinkwrap":false},"1.0.20":{"_from":"lifekit@^1.0.13","_id":"lifekit@1.0.20","_inBundle":false,"_integrity":"sha1-xJ83ORch5GLoSJLrz7t38fc7fvw=","_location":"/lifekit","_phantomChildren":{},"_requested":{"type":"range","registry":true,"raw":"lifekit@^1.0.13","name":"lifekit","escapedName":"lifekit","rawSpec":"^1.0.13","saveSpec":null,"fetchSpec":"^1.0.13"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.16.tgz","_shasum":"c49f37391721e462e84892ebcfbb77f1f73b7efc","_spec":"lifekit@^1.0.13","_where":"E:\\iotWorkSpace\\freehome","author":{"name":"liujiangnan"},"bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-body":"^2.5.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","node-uuid":"^1.4.8","object-keys":"^1.0.11","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","name":"lifekit","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.0.20","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-+mjoxwlCL3b81+Fmpdl6g2jCtDHHM8bJx3y+Ddpkg+88P79ZmvLVJO/MSesUwNHtQn6NEMA9a0+9hJPyGAQUmA==","shasum":"8b82603cff83907252f13d1196b7f2935debc0b0","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.20.tgz","fileCount":21,"unpackedSize":2392181,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFgo2CRA9TVsSAnZWagAA/AgP/1IyQEIotOFqwU33BLrH\n3t9PMYi+Vtif8wolQHrui0VSh3NpU/KJ2gUi0fIHHQiZJYWIbs95SPQApued\nClO7jS449wpBVJblNrAoG3Ws0OLzASvRIHlRH5bRtB2EEWm5OMxs+IlTx4rn\n4FsSHofe0VHqTbwFE0O6H9aF0X24eVncwB3awG7xhmKyMXxl7sToEqPdaKyl\nl1Q36CHlIoU0/3dkhKRLMCqMTAcDB+z09WMM8a6k3YcBegZG7vE9evAR6kcI\neTbeGTkCl3fHzQyHDZbauMfidyDJwGWNgGsbpoy5L8zvKXorj1+4Z9bUuZFW\n9EgRr4i12uOap4qDQb/Q/o5NhpAY8BNou4LmJ5zbDz4jDy0tmNrhyyOnM7lu\nrOkYut5HPRyOw2273w7O3suWOf6WRmsTGnf2eCETSXkI1Vlt+GRfm2xxq5YA\nbZvjktU+acEkh4ajpEm50dIcYTxZFQivY3mllM5n7Hi2GlAI2QDhQfWVTQz8\ndyTh46oNROJq+FgNrzczRB++jVbggKYfm6VRtAi1Ih1BIF08Bzqucwb9dJ3l\nY4KL7nSCV9FWjtDb34zVuet+mEN5DnjbnvQTtKro+clahzBkti/PdbYn3dJG\np1pgpherLpUoGyinLdsF+0+WNtovHE06ifXnLpW0Rm2tgykY6gZYAYK55RiV\nsVXa\r\n=2lIS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIATf6gVSQp89AU2aZcihmlw8Ns1H4AJJhUqG9LuHssBfAiEAwD3KEUwXSVqVw+zhep2lE+du0TTrcivNSELnG3pHKHA="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit_1.0.20_1528171061277_0.17159044891600783"},"_hasShrinkwrap":false},"1.0.21":{"author":{"name":"liujiangnan"},"bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-body":"^2.5.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","node-uuid":"^1.4.8","object-keys":"^1.0.11","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","name":"lifekit","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.0.21","_id":"lifekit@1.0.21","_npmVersion":"6.2.0","_nodeVersion":"10.8.0","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-3wovqsD5w/0MNEHaBdeK212qXXGvDGpbp0U5dDTN/dr6cS5JSWc7mlTsFsekBh5+QyhHeDv3tz01K9twXErd7Q==","shasum":"c4d5bf97d68588c2ea6f69d9eeb96e974bc94500","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.21.tgz","fileCount":21,"unpackedSize":2320790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4GEtCRA9TVsSAnZWagAAYT0QAIN7YTRInle9wyoeky2u\nylYWRFdoC3KpJAtm8gedZZoFuEL8zOuzpnv+/50jaMjvldPwnpctYzK3cbW2\nllxGdwn5GAnT4j+aMN7BcHkVgBHp3mRx8qZp5uISh2xDo9aqwXlFmxsxyXfo\nG8dNVbFBhbPVSJ66BLntF4IOeKrUSTL/cjvbEOF+zuwVQtPc1PHV63nNF/dm\nxztW7PzYrLtzlAm4sljPZaggmwiRqQqtvXICR3cmEFC7ygt61RYZiXS4/TfQ\nafFgSFTvRUkovT8u5m6sVQnfO9nzD8JOP5unhQgKPG4bAp5/Afz77FLdBZEF\nWBK/oVc+kTzVnjLL6vU0wOKHyeebF5iPtmxj0GMUHOkxZ5785tAc3HNlcPAd\nZKxMJS8nih/MIzyiCFj5Lbw2xqXC8VyCYYAbtm/uRq67I8UDnpoA4MGfSxiB\n/GJ8MHxcnlRAAcH5T7s97h8Ifx4y/NnITRugIx31l5R5oYhCs4HW6Zvn3gu4\nq/k2ezkM47ICOvufFwSSTEGQzWdMWN9sETu5NENpmVT+ZE1TIePjaknvjK7E\nYct8jqkW8JabhoS5NsX/9MdWUw3u1u+hjy55vE/8sANl1wwjWq3m3OedLkOk\n8boEIVQFY1ksYbVbRKJgsx1o5mR+r6EX4Q2/KdWWYdMogP4QpNva1rDTKSch\nitCn\r\n=D3L9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSF1TdRdw80TeDJ/iuIK4jgxsmYLGuCe8qvAaKe5T3qQIgGkEKRqgIzlV2K4O1XiHdAlYTidpr3tVP0zvNRd2mUOA="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit_1.0.21_1541431597225_0.8427681079759914"},"_hasShrinkwrap":false},"1.0.22":{"author":{"name":"liujiangnan"},"bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-body":"^2.5.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","node-uuid":"^1.4.8","object-keys":"^1.0.11","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","name":"lifekit","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.0.22","_id":"lifekit@1.0.22","_npmVersion":"6.2.0","_nodeVersion":"10.8.0","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-GpX0PnIs00fZ1CuaJbE9SvKv+NuC2JdpLD+D0MEI0lUwJtHDREno0dtNfo/S0fYawQUklLSz6baxabHmGpRoWA==","shasum":"7db3222930511bdb2ce4b82f84b22498e303b7d9","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.22.tgz","fileCount":21,"unpackedSize":2320918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJceKo5CRA9TVsSAnZWagAA94QP/iTDOCQujaFWawBRg4bH\na2au3xzJTUlHZUVuSc+RYjIaHm0Bp8Z80/fzfPtv7l5xSoCxM3hqzZdFlCtL\nZY5t8Ad+XL2/UJYUIVdP/v051Z1yBMo4amWpP+rf4bMrr7DeF9pVXLTrsXS/\nl9LH7a3Z8ErCVk03yA0IFB2Q7mgV3qtTqKek6ZjQN7i8pz3fAtubeBzgp6Xh\nqJLXdQr2F+hErNs2lYYGe+fRYYQqEPJHqrPZ3xlsc4pdCsrS9nNY45LSTI0Z\ndUeMd5sbXAUk55vbP2QnuXqf4AsTYP7Eni/v9I1P0fV8JR6hM9jMIWkv6KUC\nKw4gjqYo+KxrtHQC7IWzPfoiA+6gmN1sgDLbx9AmQeEpQwHSNptaz6lndJR2\nPVv5256NB527Pb0LKTSHMZqKDFmkdayVno6kCPaA4N69GKB3KyIs3P4OC0sR\nJgL9JY+TQJXkEOcusQhajv4PqBtqZ1N5IuBtALow0bZPXvkeeENdfe2/cA0C\nCjs+slt/oQKx7r3e2drUl0JG9sAaevmvfvPZZmxbQf05HIB92/X4AOEEBQwh\ndTh422CmM48BPaj7zkxiE8M647Nh17dskE1KQyT9jcsqaFCMRBiYV/v1gMUP\n9entvNn+i4bvGpset/3q0EZRBxYe1Ffr3701vWY2VHujAS1tJbx5LGybhqp/\nnM3j\r\n=AehR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5VXQASx1hOo4sCkX/TQ9bB1xep7DodQmakv1jKnWbHwIgfmQcl7Ow0nhcGUEQuifx28yP5sTK1Jh4mZB+KjsnWu0="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit_1.0.22_1551411768768_0.2579929380242474"},"_hasShrinkwrap":false},"1.0.23":{"author":{"name":"liujiangnan"},"bundleDependencies":false,"dependencies":{"debug":"^2.6.3","ejs":"^2.5.6","koa":"^2.2.0","koa-body":"^2.5.0","koa-convert":"^1.2.0","koa-cors":"0.0.16","koa-generic-session":"^1.11.5","koa-json":"^2.0.2","koa-jwt":"^3.2.1","koa-logger":"^2.0.1","koa-onerror":"^1.2.1","koa-router":"^7.0.1","koa-send":"^4.1.0","koa-static":"^3.0.0","koa-views":"^5.2.1","node-uuid":"^1.4.8","object-keys":"^1.0.11","socket.io":"^1.7.3","socketio-jwt":"^4.5.0"},"deprecated":false,"description":"物联网应用模块的最小化平台支撑(基于KOA实现)","devDependencies":{},"keywords":["lifekit","iot"],"license":"ISC","main":"index.js","name":"lifekit","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"version":"1.0.23","_id":"lifekit@1.0.23","_npmVersion":"6.2.0","_nodeVersion":"10.8.0","_npmUser":{"name":"chenjbguo","email":"695541723@qq.com"},"dist":{"integrity":"sha512-OIeTFmpG2ZlCPiBznRSodzGdV2zLRNf80Ag+7nhrWXCpPn1v9256mHeiKpeNHEDiiKSZ5/GHIq3aR1fIc3T+Hw==","shasum":"f7898e01e8ff9372419646817c8872eb50832c76","tarball":"https://registry.npmjs.org/lifekit/-/lifekit-1.0.23.tgz","fileCount":21,"unpackedSize":2320943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciKqpCRA9TVsSAnZWagAAWJYQAILZSIjumWCDG3yH0so+\nM0nlCdWDqQUxxZq6d4sCKpqrMTzJ60rERfvpWdXOUiZgC54gy5A/YfYSCp26\nO8M86XB6wb7ILPYxzQmSjACl8EbZES7pfj2FKdEZqgg+tHuM0OzKW2cyw9l+\nudaZ8D90yZVJ2IhqOjUWiAXolIXWSo1mX/jqOkVwaXU/3yjx/HYAAkjokpDC\nVx5EEKJIzVYfZIW94Z3ER0XTrgWjrSt4z2o9etQVCQColsyvYr41rtfxBFev\nWlGne9oT1vXD4rVMGBKwnCxwx4J0L3LGK06xypr0O8s3GvY4dxhCN06xSM43\nyr8Yh5a7+h8a1JX+22jVVcfJF04DUJM3Nw0uq4dPsJCsD80Oc1UZJQthrJwk\n3WHTKxgM2ThUsLplgmvrjpsYheIGw7457S/1LRGcl2qwAIRNC66Nymwb2S9x\n7DpT60B5xf/69yE0pYeNyQ4Fp+LW8lrlWWhNNBhjiWfTbMwSBIiYj4D5UXQS\nxJyCdCbMsGZ5YeI20HFUqYxpbBiujmK7L/Tkw96QikoWKC2yCwQ4CPKQ+mdb\nhbcZMp9AMD5hno4vBDGnsuGAXW960iPmyUM2Mazzof7whMsUl+8PDB2OHg8z\nZp2z925eOq2dl1uhkLom63uNnrzX+8nPlMJ2ZjTlgUtCMoumv9SfP8ahIJB6\n4295\r\n=VxV5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENWnZ4lCPsVVViaQPwFL1rRZomLEt5bFfCow/v7UvaVAiB3dyC7MNfLdL7ROV226WqxoUc5+JS+ouFp/KHzzpPy6w=="}]},"maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/lifekit_1.0.23_1552460456845_0.04981153047196396"},"_hasShrinkwrap":false}},"readme":"# LifeKit\n\n物联网应用模块的最小化平台支撑(基于KOA实现)\n\n# 1 概要说明\n\n本组件意在实现为最小化的物联网应用模块提供容器,并提供简单易用的网络交互方式与高性能的实时数据更新<br>\n\n# 2 方法及使用\n\n## (1)  skyframe\n\n说明:窗体,我们将符合物联网平台规范的应用模块包含于独立的窗体,这个窗体提供最大化/最小化/关闭/重叠/透明/拖拽等常用功能\n\n使用:\n\n```javascript\n\n    var frame = new skyframe(); //获取对象\n    frame.init({ //初始化\n        id:\"headFrame\",\n        container:$(\"#headDiv\"),\n        engine:\"login\"\n    });\n\n```\n\n其中:init方法接受一个option参数,配置如下:\n\n```javascript\n    var option = {\n        id:\"\",  //为窗体设置一个ID\n        container:$(\"body\"),  //设置窗体的容器(jquery对象)\n        engine:\"\",  //指定模块(规定:每个模块名称在项目中唯一) \n        closeable:false,  //设置窗体是否可关闭,默认为false\n        maximizeable:false,  //设置窗体是否可最大化,默认为false\n        minimizeable:false,  //设置窗体是否可以最小化,默认为false\n        moveable:false,  //设置窗体是否可以拖拽,默认为false\n        resizeable:false  //设置窗体是否可以改变大小,默认为false(如果设置为true,则鼠标可以拖动边框来改变窗体大小并触发窗体的resize事件)\n        \n    }\n```\n\n公共方法:\n\n```javascript\nframe.flush();//刷新模块\n```\n\n```javascript\nframe.bind(evname,callback); //绑定事件,支持click,close,max,min,move,reset事件\n```\n\n\n```javascript\nframe.close(callback);  //关闭窗体\n```\n\n```javascript\nframe.maximize(callback);  //最大化窗体\n```\n\n```javascript\nframe.minimize(callback);  //最小化窗体\n```\n\n```javascript\nframe.resetFrame(callback); //恢复最初的大小和位置\n```\n\n```javascript\n/**\n     * 移动到\n     * @param top 绝对定位\n     * @param left 绝对定位\n     * @param callback 回调函数\n     */\nframe.moveTo(top,left,callback);  \n```\n\n```javascript\n/**\n     * 设置宽高\n     * @param width 宽度\n     * @param height 高度\n     * @param callback 回调函数\n     */\nframe.chengeTo(width,height,callback); \n```\n\n```javascript\nframe.setStyle(key,style);  //设置窗口的样式\n```\n\n```javascript\nframe.setStyleObj(obj);  //设置窗口的样式\n```\n\n\n## (2)  netclient\n\n说明:通讯模块,对于每一个符合物联网平台规范的应用模块,前端页面都会有此内置 net 对象,此对象提供非常灵活的前后台交互方法与实时的数据推送功能等,同样的在server端有一个net的global对象与其配合使用\n\n数据链(dataline):\nnetclient对象内置一个data属性,此属性具有前后台实时数据同步的能力,对此属性进行赋值或者修改等操作时,前后台都能够获取data的最新结果\n\n例如,web端有如下操作:\n```javascript\nnet.data.a={\"name\":\"小明\"};\n```\n则后台可以获取这个属性,代码如下:\n```javascript\nconsole.dir(net.data.a); //{\"name\":\"小明\"}\n\n```\n同理，后台也可以如上赋值被web端直接读取\n\n公共方法:\non(eventname,callback):绑定侦听事件,对应服务器端的emit方法,这里需要注意call dataline  initserver  connect  disconnect这几个事件为内置事件,禁止侦听\n\nweb端写法\n\n```javascript\nnet.on(\"myevent\",function(data){\n    console.dir(data);\n});\n```\n\n这样当对应的服务端有如下代码执行时,将打印data数据\n\n```javascript\nvar data = {a:12};\nnet.emit(\"myevent\",data); //触发前台的myevent事件\n```\n\nemit(eventname,data,callback):触发服务器端绑定的事件,对应于服务器端的on方法,同样注意 call dataline initserver connect disconnect这几个事件为内置事件,禁止侦听\n\nweb端写法\n\n```javascript\nnet.emit(\"testEmit\",{a:1},function(res){\n    console.dir(res);\n});\n```\n\n这样当对应的服务端有如下代码时,则触发执行并触发前台的callback\n\n```javascript\nvar data = {a:12};\n//由前台的emit方法触发\nnet.on(\"testEmit\",function(obj,callback){\n    console.dir(obj);  //前台传过来的数据对象\n    callback&callback(data);  //前台的callback会打印出{a:12}\n}); \n```\n\ncall(funcname,data,callback):调用服务端的方法\n\nweb端写法\n\n```javascript\nnet.call(\"test\",{a:1},function(data){\n    console.dir(data);\n});\n```\n\n当对应的服务端有如下方法,将会执行并触发前台的callback\n\n```javascript\nthis.test = function(data,callback){\n    console.dir(data);\n    callback&callback(1);  //前台将打印1\n}\n```\n\ngetAjaxURL();获取Ajax的路径给第三方的插件用,需要配合getAjaxData方法使用,才能正常发起一个Ajax请求\n\n```javascript\nvar url = net.getAjaxURL();\n\n```\n\n\ngetAjaxData(method,parms);由于后台过滤,发起Ajax必须要带一些参数,配合getAjaxURL才能正常的发起一个Ajax;method对应后台的方法名称,parms为传入后台的参数\n\n```javascript\nvar data = net.getAjaxData(\"testmethod\",parms);//这样 后台的testmethod方法就可以被ajax调用,并且穿过去parms参数供业务使用\n```\n\ngetView(method, parms, callback):经对应的服务器端method得到ejs,注意:如果method等于getEjs的话,则parms参数必须为有效的ejs路径字符串,此种情况直接返回parms指定的模版\n\nweb端写法\n```javascript\nnet.getView(\"testRender\",'',function(res){\n    $(\"body\").html(res);\n});\n```\n\n对应的服务器端写法\n\n```javascript\nthis.testRender = async function(ctx,parms){\n    console.dir(parms);\n    return ctx.render(\"engine/example/web/sonejs/student.ejs\",{});\n}\n```\n\ngetData(method, parms, callback):向后台请求获取数据,方法使用同getView相同,只是对应的后台写法res.render应改为res.body\n\n\n我们可能是后台自启动的服务推送给前台数据,为了适应这样的场景,添加如下两个方法:\n\n```javascript\n/**\n * 根据服务名称获取所有已经开启的socketIO客户端信息\n * @param service\n * @returns [{\"key\":\"socketid\",\"value\":{net:{},service:\"\"}},{}......]\n */\nvar clients = net.getSockets(service);\n\n```\ngetSockets方法会获得对应service的模块的所有打开着的客户端,返回一个形如[{\"key\":\"socketid\",\"value\":{net:{},service:\"\"}},{}......]的一个数组对象\n通过遍历这个对象可以获取每一个net,然后就可以向指定的前台推送数据了\n\n第二个方法如下:\n```javascript\n//获取所有的socket信息\nvar property = net.getAllSocket();\n```\n这个方法用一个特定的数据结构进行存储,结构如下:\n```javascript\n{\n    service:[\n        {\"key\":\"socketid\",\"value\":{net:{},service:\"\"}},\n        {\"key\":\"socketid\",\"value\":{net:{},service:\"\"}},\n        ...\n    ],\n    ...\n}\n```\n它会获取所有的客户端,也就意味着它可以向其他任何一个模块推送数据,这将会增加模块的耦合,导致业务的混乱,增加代码的复杂度,增加维护难度.总之,不推荐使用\n\n\n## (3)  数据联动\n\n说明:借助于数据链(dataline),应用Vue.js使数据变动绑定到dom元素上，实现数据链对页面元素的实时控制，包括文本、样式、显示/隐藏、元素填充等\n\n公共方法：\ndatachange(id,option);初始化数据绑定\n示例：\n\n例如存在如下HTML片段：\n\n`<div id=\"realData\">`\n\n`<span>{{message}}</span>`\n`<span v-bind:title=\"title\">`\n\n    绑定title属性\n  `</span>`\n\n`<p v-if=\"seen\">显示与隐藏</p>`\n\n`</div>` \n\n使用datachange方法初始化数据绑定，如下：\n\n```javascript\n\nvar vue = net.datachange(\"realData\"); //\"realData\"为需要数据绑定的元素ID，此方法返回一个Vue实例\n\n```\n\n当数据链(dataline)的message、title、seen属性值发生变动时，页面元素则同时发生变化(显示message的值、title属性被动态赋值、显示与隐藏)\n\n比如:\n\n    当net.data.message=\"hello world\"时，页面`<span>{{message}}</span>`则相应的变为`<span>hello world</span>`\n    当net.data.title = \"测试标题\"时，页面`<span v-bind:title=\"title\">绑定title属性</span>`则相应的变为`<span v-bind:title=\"测试标题\">绑定title属性</span>`\n    当net.data.seen = true时，`<p v-if=\"seen\">显示与隐藏</p>`会显示\n    当net.data.seen = false时，`<p v-if=\"seen\">显示与隐藏</p>`会隐藏掉\n\n更多功能与效果请参见 Vue.js官网：https://cn.vuejs.org/\n\n \n\n## (4)  规范\n\n### (1) 所有独立业务模块必须放在 /engine 文件夹下；模块名称为文件夹名称，文件夹包含 src与web两个文件夹，src存放服务端代码，web存放页面、js、css、图片等前端静态文件，web下的文件都能够被浏览器直接访问到\n    --src文件夹下必须包含service.js（必须叫这个名字）文件作为后台逻辑的统一入口,结构如下：\n    --业务模块必须包含README.MD文件，说明模块的用途与注意事项等\n\nservice.js\n```javascript\n\nconst jwt = require('jsonwebtoken');\nfunction service(){ \n    //内置方法，实现此方法，则当模块调用时先执行此方法的逻辑\n    this.init = function(ctx,parms){\n        return ctx.render(\"engine/login/web/login/login.ejs\",{});\n    }\n\n    //可被前台getView调用的方法\n    //ctx为KOA2框架的上下文\n    //parms为前台传送的参数\n    this.login = async function(ctx,parms){\n        var data = JSON.parse(parms); \n        const token = jwt.sign({user: data.username}, sysconfig.jwt.option.secret); \n        var res = {flag:\"success\",data:token};\n        return ctx.body=JSON.stringify(res);\n    }\n\n}\nmodule.exports = service;\n\n```\n\n### (2) 所有的后台模块必须发布成独立的nodejs模块，放在node_modules下，可使用npm install命令安装\n\n### (3) 所有的前端模板必须放在其被引用的独立业务模块的web下,不允许多个独立业务模块公用一个前端模板，哪怕使用的模板一模一样\n\n### (4) 以上规范对架构重构者或资深nodejs开发者无效\n\n","maintainers":[{"name":"chenjbguo","email":"695541723@qq.com"}],"time":{"modified":"2022-06-19T12:14:10.793Z","created":"2016-08-10T08:21:49.768Z","1.0.0":"2016-08-10T08:21:49.768Z","1.0.1":"2016-08-20T09:32:24.523Z","1.0.2":"2017-09-06T11:08:23.330Z","1.0.3":"2017-09-06T11:54:34.294Z","1.0.4":"2017-09-07T02:28:38.366Z","1.0.6":"2017-09-11T10:20:21.605Z","1.0.7":"2017-09-12T07:05:41.550Z","1.0.8":"2017-09-15T05:28:44.194Z","1.0.9":"2017-09-19T06:29:51.215Z","1.0.10":"2017-09-19T06:33:59.836Z","1.0.11":"2017-09-26T02:31:07.940Z","1.0.12":"2017-09-26T02:59:32.495Z","1.0.13":"2017-11-16T04:17:47.239Z","1.0.15":"2017-12-22T04:40:03.065Z","1.0.16":"2018-04-16T07:33:10.529Z","1.0.17":"2018-05-24T11:38:06.820Z","1.0.18":"2018-05-25T11:08:24.283Z","1.0.19":"2018-05-28T08:55:04.387Z","1.0.20":"2018-06-05T03:57:41.519Z","1.0.21":"2018-11-05T15:26:37.421Z","1.0.22":"2019-03-01T03:42:48.920Z","1.0.23":"2019-03-13T07:00:57.181Z"},"keywords":["lifekit","iot"],"author":{"name":"liujiangnan"},"license":"ISC","readmeFilename":"README.md"}