{"_id":"yf-api-server","_rev":"27-e8059f1e1c8d9477b9a81f3cf3875e70","name":"yf-api-server","description":"> 一款灵活的api服务端，自动集成crud的数据操作，灵活扩展自定义业务逻辑","dist-tags":{"latest":"1.0.13"},"versions":{"0.0.1":{"name":"yf-api-server","version":"0.0.1","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./bin/app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","co":"^4.6.0","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","coordinate-distance":"^1.0.0","crypto":"0.0.3","date-utils":"^1.2.17","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","jugglingdb":"^1.0.2","jugglingdb-mysql":"0.0.10","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","mysql":"^2.9.0","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"description":"建议运行环境：\r *nix,nodejs/io,mysql","_id":"yf-api-server@0.0.1","_shasum":"dfc12b0788771e19caad277a50aa4c41d7441f23","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"dfc12b0788771e19caad277a50aa4c41d7441f23","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.1.tgz","integrity":"sha512-PgHr5z9cpjG0FJwlo/lC3VgzkjANzEWgHXhCkM8iXx7o4GEXJiHgCHSQV7bN+DyUfbpcKqeUxds9jNNjZZmSgA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcQR1OBmuEyNIsrUl0mhykSz1LZaX20wz3i5PGNhU44wIgP6Q4evgNxlWeJvYfZrhgx4uDfyMg7P7HRC7mwFgrHlw="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.1.tgz_1465456538119_0.75696677621454"}},"0.0.2":{"name":"yf-api-server","version":"0.0.2","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./bin/app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"description":"建议运行环境：\r *nix,nodejs/io,mysql","_id":"yf-api-server@0.0.2","_shasum":"1401b57158962f70e35690a4f6c2b3480a42cfe7","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"1401b57158962f70e35690a4f6c2b3480a42cfe7","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.2.tgz","integrity":"sha512-AMhLLVw9w0G3sQhSVIC9hXW2ZsfpdTn8nw90j/+IKCh+KUrfwJZsQRIcI62mU6rhb0iMLyyUrDmbt5LWutJ7/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwHJPeXdJJtoMNgda9f5MP+/LDxee+FaJqyBX/anhuFQIhAM7+a9vbKOa1NNTLhTiehYxwuglbwFsgATSCAXWWYwkN"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.2.tgz_1465457515310_0.7521214890293777"}},"0.0.3":{"name":"yf-api-server","version":"0.0.3","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"description":"建议运行环境：\r *nix,nodejs/io,mysql","_id":"yf-api-server@0.0.3","_shasum":"75821ada138de2993892056d38e23e6f150df82d","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"75821ada138de2993892056d38e23e6f150df82d","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.3.tgz","integrity":"sha512-Gzro5MU7BkDUxnlYXioDEEGFyXK2+jOqbix5UfMKiyQUbhZk3X6shuGIkBdBaYw8y0FC5gDxO8evrWWjAK014A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCu2SS1kWdeA8WhIH6urA4QXZ/6jprd1SCb/Sxdusx69wIhAO84p9k2hD7SFR/ZFz06OK7aBGCKaqpesLkwbcU0PuD4"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.3.tgz_1465457887374_0.2404253762215376"}},"0.0.4":{"name":"yf-api-server","version":"0.0.4","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"description":"建议运行环境：\r *nix,nodejs/io,mysql","_id":"yf-api-server@0.0.4","_shasum":"0256e8d8a901080059c6e364d5d4969716327e6d","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"0256e8d8a901080059c6e364d5d4969716327e6d","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.4.tgz","integrity":"sha512-iej+dJcDwtVv4ON0xDrSK6sIizLMw6uSbaMreZd8Rg87jNDIibjCjqAFcAucePFcTu988/fzamD5loDY1ww1ng==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2v78Gwjqh/j7EZ6SaoHX9jLOvhvHU1xC4TbBOdS7VMgIgG52KLeZ/UtFUXwcl3rD9LwEY+oA7meYV1e1Lr+xUHkg="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.4.tgz_1465956053703_0.4361771990079433"}},"0.0.5":{"name":"yf-api-server","version":"0.0.5","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"c8e6185e7f9bc9022ae8d11c30fb2d73e4b72376","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.5","_shasum":"c6d19e3da1d7ce783a92cc82d0081188dec6d157","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"c6d19e3da1d7ce783a92cc82d0081188dec6d157","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.5.tgz","integrity":"sha512-+JKVivBMNOZL1IS2+M1MX2Vbe4fGNhNDTRftKzznP5WIgLPF7ADtPmLrN0kJLuzbZjTaPPYt3OreFOwpYfskjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgV/hDHAZBS4MD1s8JMzfQhGLQDp0T+c1b5ZthPzI5XgIgT3tetlZt99qDLoXGvTDTEHSxwJITHw+bnto2JVECrNg="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.5.tgz_1466047592489_0.43943277350626886"}},"0.0.6":{"name":"yf-api-server","version":"0.0.6","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"612815d026aa027778a75b45ee235f42a41c1b88","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.6","_shasum":"e9dade52365859d1c8b15906fcb3507b867704b1","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"e9dade52365859d1c8b15906fcb3507b867704b1","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.6.tgz","integrity":"sha512-HH3rSleSA0edoa6zsb2Tumy0lXtKIZBZ2B87aJYJajCjXVR56zzEH6h3KJwilJGNCdXpdjQsq4dIM+1D24ocgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzHibfSCGjsyUboGASOH8ENNX2ILcnJmztb/3qRgW51QIhAKy6Va91lcxAAaZgG14Gd02998lH/gPqd3DGrF1n1td9"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.6.tgz_1466065359667_0.9421969237737358"}},"0.0.7":{"name":"yf-api-server","version":"0.0.7","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"00aa2b17e4693337ffb3c8aa7b630241d5ed3892","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.7","_shasum":"6bbb9758df3a53595a6c475e67a25b7e96ca4bf1","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"6bbb9758df3a53595a6c475e67a25b7e96ca4bf1","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.7.tgz","integrity":"sha512-CI/FS4XDosDEER3x1Wbjp9OB/Wv/plDgzTR2Ogk1jVY78uUM84M37AeHFreVvX7S5dVl9RnAkVbHp+d5kCfq/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFflem/FLhy1jPW1h4vf6tK5fgWKEKH0/2+fQG0khPvKAiA5I3AEgbAGK/OwF/RkaMwxqDbx7KeJdrUuhl7p4/eMRQ=="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.7.tgz_1466066329660_0.9266579304821789"}},"0.0.8":{"name":"yf-api-server","version":"0.0.8","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"75f5746cb3044256e00fb18bac2b50f20c1b02ce","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.8","_shasum":"0594390c3ca0365e1fb70eaffc0a3654aeb1a081","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"0594390c3ca0365e1fb70eaffc0a3654aeb1a081","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.8.tgz","integrity":"sha512-hQ4Gd5UVGHHm1+uX1UC5+cHTmcmpYwSSop/neZLts2oR7ciHWftr8GeGQEEc66d+z+fNBVhqIH9SdGYITh8I3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGRN2ytmO9FTYwOAQ0x9FAsrghyZnyr6RY1/sdRThXpgAiEAmEGT28V1Z6NkhV+gKkvuRN3hb6wH0RNGIzW+/qRRJN0="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.8.tgz_1466068847726_0.878401615191251"}},"0.0.9":{"name":"yf-api-server","version":"0.0.9","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"08ead67ee386e817410d19494065f97587d31474","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.9","_shasum":"9dac7d62b2233f7ed8279565cd0c7a39f4d6f788","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"9dac7d62b2233f7ed8279565cd0c7a39f4d6f788","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.9.tgz","integrity":"sha512-1QLADODVE1Ga/CX/VeT3+4tia9DR38Un9h12F+5Id/zzZTaJzR9Vq1sb1uKc1zof6Qblzp0PuGtusYG6fDXHrw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD17SRd9ZxFVSp6cVlZgfrWdmkkvkYs05q/ZZKQa5bHkQIhAMnr+JLlQEl6Fw1Tbkl2gtx/6Z8EeX0G/yd6XRPRSlMD"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.9.tgz_1466126011749_0.4949274198152125"}},"0.0.10":{"name":"yf-api-server","version":"0.0.10","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"08ead67ee386e817410d19494065f97587d31474","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.10","_shasum":"2fe20a1e635f4d46ad169a9604d4f3d4551037fe","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"2fe20a1e635f4d46ad169a9604d4f3d4551037fe","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.10.tgz","integrity":"sha512-GiKtJvP4sNIljJjC44sSzz7IHhumL1I36wECLl8nxQ3PKuvpge6dVYQJ0s0vD2p141JvyyDCDhbdVp+8Pv7Enw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8qSBmQOF/oF1tkEQYIBgP+e7aPGqiUNBgcR4RUMEHvgIgGrgUCo72XcSx4E5Nv36WGJK3onlGdW0amwdBdby+u2k="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.10.tgz_1466129942205_0.3201671219430864"}},"0.0.11":{"name":"yf-api-server","version":"0.0.11","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"08ead67ee386e817410d19494065f97587d31474","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.11","_shasum":"b1636d34a5217ee1f5071044fab040f5ecafc122","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"b1636d34a5217ee1f5071044fab040f5ecafc122","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.11.tgz","integrity":"sha512-bkgMxRmdFea3BQcmsZ/qTVdp/P4N/qPXLmtuJpR3aWPv5b/IxMBmyvGFS5y7FMau5kL9bL6SFh+tY+dsgvbYtQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCv/oa2pLjmZjBJKz1K4HyQ0gLigCKv/h3jctn3GFIKZAIhANJwyyXYtdv87NIY0iCm/idzZiLutiReiY/EgYkNbxKF"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.11.tgz_1466130326574_0.5483948020264506"}},"0.0.12":{"name":"yf-api-server","version":"0.0.12","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"cf4d340b404768caddaf940aeb083e0a3b4fc1cd","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.12","_shasum":"0da44f29978470e000d6cda8bfda780cba814a9e","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"0da44f29978470e000d6cda8bfda780cba814a9e","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.12.tgz","integrity":"sha512-7ZMuYtl+wa2B82FySUK51bnrJNMkia0kVUvgPXFDMRN1EUbBveq4g0bjfVyYIHMJXtDv4z64YhP9ZmPpxIuGEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFHctNnArZGQCSVWfib7wADuUMC/As/kRQ8DXhOOzXbFAiEAttLgdqF5AH2XFqYDUkf5BV++uBeppCm02tPhjBkg330="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.12.tgz_1466136291977_0.6012624658178538"}},"0.0.13":{"name":"yf-api-server","version":"0.0.13","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"cf4d340b404768caddaf940aeb083e0a3b4fc1cd","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.13","_shasum":"33029bf1dcbda04bd6c7044067bf02708feedb0c","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"33029bf1dcbda04bd6c7044067bf02708feedb0c","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.13.tgz","integrity":"sha512-0pRz9EGo2kWVFujWbnq6VkOy2p/32nk6rtWJL7HGceahPS6jHfbCbiaDjI1GHzW0EfaQWVZiPzNl8fxyyQNxcg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmX0fT9Hz2ITqlJl0lpAhF7yvluqamIYmCAdXkoJGcdwIhAJCAnvVq7PW5paxBApgbg+dqvnaJFcerNvdg38Pu+H+7"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.13.tgz_1466137022039_0.16517025814391673"}},"0.0.14":{"name":"yf-api-server","version":"0.0.14","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"cf4d340b404768caddaf940aeb083e0a3b4fc1cd","description":"> 一款灵活的api服务端","_id":"yf-api-server@0.0.14","_shasum":"75567baf05fc257c0d21ff7ac41092b9fde1c980","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"75567baf05fc257c0d21ff7ac41092b9fde1c980","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-0.0.14.tgz","integrity":"sha512-XwvuFub2yZUDSqRe0Oin6czebGbtvfkVVglTVwwfd+26caLXo+IkVjuxxhs/yG/iVNyJQTzM6dvQKoG/pwwoXw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEBXfP1IToBapcxyzapBPKQnWjXaQyXqAMT0kx9jxFr+AiEAgSw5FYTb55+I01ghZfCCbqzFjG2RsQek4/lwHmzy1OE="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-0.0.14.tgz_1466137300415_0.988583724014461"}},"1.0.0":{"name":"yf-api-server","version":"1.0.0","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"cf4d340b404768caddaf940aeb083e0a3b4fc1cd","description":"> 一款灵活的api服务端","_id":"yf-api-server@1.0.0","_shasum":"2495d9de1b8f08e17e8a6ddca551d4ddc91902b3","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"2495d9de1b8f08e17e8a6ddca551d4ddc91902b3","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.0.tgz","integrity":"sha512-3ZwCOLdDi5h7hRnTWv3AXbpc+35lBvdKfQGEs1AUV9BQts9XXkqfkSPwsVilWOYkMrXpskBauwociHyGknAfkA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFb4/bVhyZ7HkD+eKJIe6I/CzzA2bITAGD5RRdUxXuxZAiEAhuRAGgWV+dJpClQGbCVx2nLJgiqHGDu2+PHETPVDKIs="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.0.tgz_1471248054705_0.8883847745601088"}},"1.0.1":{"name":"yf-api-server","version":"1.0.1","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"cf4d340b404768caddaf940aeb083e0a3b4fc1cd","description":"> 一款灵活的api服务端","_id":"yf-api-server@1.0.1","_shasum":"315e5dd1584c2568a23cdd381644ceba7e4a346a","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"315e5dd1584c2568a23cdd381644ceba7e4a346a","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.1.tgz","integrity":"sha512-BL7ygbYbWG8jVhEYQ+bZa4anLN+eSjfC4XZQs7CFwLUmFKFRdP/WklN+b9JQr+ryKCLONoLKB4fSxBMIMaiArQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC7/cKHDFH3pacCerkejgF6r5XKXhOL9B9JA5jvL9O/rAiBc0VH7Qqq4Ps8ZKsHR+4BJ5dnEy0DChcf8QHC9hgV8uw=="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.1.tgz_1471249330591_0.7701477827504277"}},"1.0.2":{"name":"yf-api-server","version":"1.0.2","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"a3bd960df02add68dc5d336ff05dfa46f66328d9","description":"> 一款灵活的api服务端","_id":"yf-api-server@1.0.2","_shasum":"4ef5312349da8270248e968e35844e8be884dbfb","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"4ef5312349da8270248e968e35844e8be884dbfb","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.2.tgz","integrity":"sha512-FlzIULgP2BHmWBZzXMpw8ArTS2Zx8Ra8ucVxPeuUvZxVn/nJ/ya0pvZI8VB83hdeh1lyPGstBz/b7R+aWgz2Cw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFsot7o3g6pCRSll7sDXffmRx0d8SZElk0juOPvbeIm2AiEAiTJRZsZ7ws5O+flCLaOLOcKt8jzxSdtR417f3VZw6sU="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.2.tgz_1471253775302_0.44048944185487926"}},"1.0.3":{"name":"yf-api-server","version":"1.0.3","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"0adaf9fd50f3db52ec984b1b401e27b63aeb2e5c","description":"> 一款灵活的api服务端","_id":"yf-api-server@1.0.3","_shasum":"3b975abb7cdeda0fe70be8dc56cb9bfd20898c47","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"3b975abb7cdeda0fe70be8dc56cb9bfd20898c47","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.3.tgz","integrity":"sha512-pNO7rNGVV38C/kivJSGfwY2UFdZXAtDUWwf67r1k9idMa5r3PwxzFC9PGQM0pBoLOde8v44sBJbvVt0KVr+4Gw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZ9JvtMjhQ/x7yE/bn0O+in9WsV5nxxlAMvRi/HeQkdAiEA7eHB7Yag78cOm7hnfDjLn4VetHaMbPR2d4Mit6EKFC8="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.3.tgz_1471409157816_0.4169160157907754"}},"1.0.4":{"name":"yf-api-server","version":"1.0.4","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"727d75ec2aba5f2d9d2900739b5028bc7a9ce8f3","description":"> 一款灵活的api服务端","_id":"yf-api-server@1.0.4","_shasum":"d74d26219bd28a4fc08a324c5c09ba793f570ddc","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"d74d26219bd28a4fc08a324c5c09ba793f570ddc","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.4.tgz","integrity":"sha512-wCoPLpp83qmbnM6lRR7CiUc8uR13YHqyHa8XRmh3vDdb6F4OS8Wnehx5A2qWe6pfFeEy0Hb7HF0imBLpPHyu7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBgPkBZkCU+n7jYZ7rsB/UBkAvAPBuRQUy6XBGXPHQYwIhAJboT9xJcP2AnU7ndOLDkkxL1eLrCVd1m538oY3gira7"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.4.tgz_1471410327688_0.8265626188367605"}},"1.0.5":{"name":"yf-api-server","version":"1.0.5","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"b8a0fc29516e097a2a8ef3beeb9d78b6d7e0545b","description":"> 一款灵活的api服务端","_id":"yf-api-server@1.0.5","_shasum":"1e8a73bda80fa5ab5f525f593f6ab730ec1d514d","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"1e8a73bda80fa5ab5f525f593f6ab730ec1d514d","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.5.tgz","integrity":"sha512-vnIreXfhpHBqi6ImgZrie/Ex1hqTxuV2TsYtANg8383ZWkF9bu6f7X31JyI/e2r1VRpMf14KpOsL62kDpZupkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOVJfa8gIoUihf3pTTLEIcPnQ9e5r4mVrjOpKiF0NiTwIhALPj/5KW6sKhvy86KOwfa7qHg57mW7AnxecGzjhM6Yjd"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.5.tgz_1471411566855_0.6372444545850158"}},"1.0.6":{"name":"yf-api-server","version":"1.0.6","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"9e1c93b6ef5430c8d8e12bf348c26aeb4bb328eb","description":"> 一款灵活的api服务端","_id":"yf-api-server@1.0.6","_shasum":"c8ee5735ae85f3ade598677ba0cc079ae7ccdc9a","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"c8ee5735ae85f3ade598677ba0cc079ae7ccdc9a","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.6.tgz","integrity":"sha512-V9o/uPGQXjlNA76tQKhiJwMIDZk3rRQXfq1iRR8LDKy94yFq/wUW/DShaqeYnklRd3Y6f8fR75k1SJ2imh3lZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEyHMILhftDTn7dxZE4i6Tx93HAr0Hqbm7QJQcKc3t11AiEAgtwjd3rH4Ll1oOUucY+IzNgeF29GBdE263JJ+BhhpIg="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.6.tgz_1471413563656_0.009488889016211033"}},"1.0.10":{"name":"yf-api-server","version":"1.0.10","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"2cc2af09ae48280af53281daa805ac36e386b6c3","description":"> 一款灵活的api服务端","_id":"yf-api-server@1.0.10","_shasum":"1afff0ef15d8e4249db513ff3084fd4398639de6","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"1afff0ef15d8e4249db513ff3084fd4398639de6","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.10.tgz","integrity":"sha512-nrAokr1AwOX0X4PMTbpFYywQtfW2SPnjWPoyueWSDOodTu5gjc/9c7BeNh2XD/p8dKB8KWBJ3YHCxXEcjJejUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDx0ScQjGZU90TwFnU5nncOpxd96bCiM8zS0jKRLeM5KQIgH9J29K9P6JVH/qYPCXYY2TbpB8JC5CRhYa3h4tH+nZc="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.10.tgz_1471414581774_0.7480996148660779"}},"1.0.11":{"name":"yf-api-server","version":"1.0.11","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"supervisor --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","jpush-sdk":"^3.2.1","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","serve-favicon":"~2.3.0","socket.io":"^1.3.6","superagent":"^1.3.0","supervisor":"0.7.1","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"9fc64dfb620522b84f89b0dc4b8306e29c0d08ae","description":"> 一款灵活的api服务端","_id":"yf-api-server@1.0.11","_shasum":"6bb6cb4807f8b4297e4a4e9b9759407ff341967e","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"6bb6cb4807f8b4297e4a4e9b9759407ff341967e","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.11.tgz","integrity":"sha512-/17+a1AG679sU/y47se2iIWyR2/QavYFUu6/xg8U57yGNAprhzSvmxjTxm9miNjuohKW9UnnkzUiJBgyn8bBVw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFT/TojftE8CQzct9I4Far5A7OX41HchNgi+lTGZ0PfAIhAI0iCA4tIUVqHCNsOyJt4q7t/TdmKpMPrBAkMwioIt83"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.11.tgz_1471573687528_0.7409901227802038"}},"1.0.12":{"name":"yf-api-server","version":"1.0.12","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"node --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","superagent":"^1.3.0","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"f8bd81a659978e73c037da6869fae26f92d60252","description":"> 一款灵活的api服务端，自动集成crud的数据操作，灵活扩展自定义业务逻辑","_id":"yf-api-server@1.0.12","_shasum":"84d920df92b45115dfe3762f19373aa8ec2ed7ca","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"84d920df92b45115dfe3762f19373aa8ec2ed7ca","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.12.tgz","integrity":"sha512-XOW2uy0Bb99PZ3MEwXNuFFxva+UTOcRJhtICWv2O+VCYANs2yoAVVRT1YbwEIlXIdvvggOC+dN/WiO9yMjAs9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICR/axu15w3e/u8PeypZzXRJv4WqJ/9+0pkz7OWx23IyAiEAhuIZ81h8dWXC1rjcNpMQkzh4wnZvHiWToCbF1FiaA1o="}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.12.tgz_1472025628994_0.3535641736816615"}},"1.0.13":{"name":"yf-api-server","version":"1.0.13","main":"./bin/app.js","scripts":{"test":"mocha test/*.test.js","start":"node --harmony ./app.js"},"dependencies":{"async":"1.4.2","body-parser":"~1.13.2","connect":"^3.4.1","cookie-parser":"~1.3.5","cookies":"^0.6.1","crypto":"0.0.3","debug":"~2.2.0","iconv-lite":"^0.4.13","less-middleware":"1.0.x","loader":"^0.1.6","log4js":"^0.6.26","memory-cache":"^0.1.5","moment":"^2.12.0","morgan":"~1.6.1","node-schedule":"^0.2.9","nodemailer":"^1.4.0","on-headers":"^1.0.1","q":"^1.4.1","qiniu":"^6.1.9","request":"^2.72.0","restify":"^4.0.3","superagent":"^1.3.0","underscore":"^1.8.3","util":"^0.10.3","yf-fast-dbm":"^1.0.0"},"devDependencies":{"blanket":"1.1.7","coveralls":"2.11.2","errorhandler":"1.2.2","gulp":"^3.9.0","gulp-concat":"^2.6.0","gulp-imagemin":"^2.3.0","gulp-jshint":"^1.11.2","gulp-minify-css":"^1.2.0","gulp-uglify":"^1.2.0","gulp-util":"^3.0.6","istanbul":"0.3.17","mm":"0.2.1","mocha":"2.2.5","nock":"1.4.0","pedding":"1.0.0","should":"~7.0.3","should-promised":"^0.3.1","supertest":"0.14.0"},"gitHead":"f8bd81a659978e73c037da6869fae26f92d60252","description":"> 一款灵活的api服务端，自动集成crud的数据操作，灵活扩展自定义业务逻辑","_id":"yf-api-server@1.0.13","_shasum":"c66f9ed6e833ae09d5f7ef7fe067f1b34387339d","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.6","_npmUser":{"name":"yfsoft","email":"yfsoftcom@126.com"},"dist":{"shasum":"c66f9ed6e833ae09d5f7ef7fe067f1b34387339d","tarball":"https://registry.npmjs.org/yf-api-server/-/yf-api-server-1.0.13.tgz","integrity":"sha512-E8Fwi/g6EwmROHPm/VJXo0EQqmHvJcxty0GBTFAb+irCGUeQrU4J+F5ZbGi/kcVeYhiCtExZUovu2lIj9Blxyw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfqF+Jy2Zg14OMPHVc68Vm5Xii5YUA9aFmcR8M/9NNyQIhAIo93M2b9ThBd6uvjNnhop67YVeH3KGymFAlLrCPVOXJ"}]},"maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/yf-api-server-1.0.13.tgz_1472026677652_0.7222502150107175"}}},"readme":"## yf-api-server\r\n### 0.OVERVIEW\r\n> 一款灵活的api服务端，自动集成crud的数据操作，灵活扩展自定义业务逻辑\r\n\r\n* 源码地址: https://github.com/yfsoftcom/yf-api-server\r\n* 基于restify框架\r\n* 支持key+secret双端验证\r\n* 支持接口权限验证\r\n* 支持hook钩子操作\r\n* 支持接口多版本同时在线\r\n\r\n#### 设计概要\r\n\r\n##### 　背景\r\n> 团队的产品从单平台，慢慢扩展到多个客户端，且有多个异构系统的数据交互，所以需要一个统一的数据输入输出口。\r\n\r\n- 用node有个人私心，因为喜欢它，虽然编写java已经有近7年的时间了，但我还是想跳出自己的舒适区。\r\n- 使用restify作为http框架，因为它够轻，够简洁，几乎没有学习成本，而且体积小，自然坑也少 [偷笑]。\r\n- 没有使用restful风格，因为业务需要对数据有权限限制，而且业务交集很多，对路由的管理成本就大。\r\n- 经过一小段时间的纠结，决定采用taobao和jd的开放平台的设计方案，定义统一的入口，通过参数定位业务接口，实现灵活的业务开发。\r\n\r\n##### 　定义\r\n\r\n　　　　服务只有一个入口 **/api** ; 只接受post方式的请求,定义如下\r\n\r\n* 传入参数结构\r\n\r\n| 参数名 | 类型 | 是否必须 | 参数说明 | 默认值 | 示例 |\r\n|:-------:|:-------:|:-----:|:-----:|:-----:|:-----:|\r\n| method | String | Y | 需要调用的业务函数 | 无 | |\r\n| appkey | String | Y | 应用被分配的密钥 | 无 | |\r\n| timestamp | Number | Y | 应用端的时间戳，用于验证请求的时效性 | 无 | 13位时间戳 |\r\n| v | String | N | 调用的服务端接口的版本号 | 无 | |\r\n| param | Object | N | 业务函数需要用到的参数，以JsonObject的形式传入 | 无 | |\r\n| sign | String | Y | 将接口参数进行升序排列，如 appkey,method,param,timestamp添加一个masterKey=xxx[此处的key来自于注册的key] 组合成appkey=123&masterKey=xxx&param=44444&tmiestamp=140932932932[所有的参数值使用urlencode] 过md5加密，生成一个32位的密钥 | 无 | |\r\n\r\n* 输出参数结构\r\n\r\n| 参数名 | 类型 | 是否必须 | 参数说明 |\r\n|:-------:|:-------:|:-----:|:-----:|\r\n| errno | Number | Y | 业务函数的错误代码，通常为0，表示正常执行，<0 则表示执行错误，可通过应用说明获取到具体的错误原因。|\r\n| message | String | N | 通常在执行出错的情况下，会输出错误的信息。 |\r\n| timestamp | Number | N | 返回服务端处理完信息之后的时间戳。 |\r\n| data | Object/Array\t | Y |  一般的查询类的业务函数，会在该字段下携带查询结果信息；具体是Object类型还是Array类型则根据不同的业务函数的说明而定。 |\r\n| error | Object | N | \t错误信息的详细内容 |\r\n\r\n　　这样的设计不能满足现在的restful范式，但是能满足我们团队现有的需求，提高了业务实现的开发效率；\r\n\r\n* 效果预览\r\n\r\n![启动服务](http://upload-images.jianshu.io/upload_images/1449977-1bb3e9ec2207730e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\n\r\n\r\n![postman 测试](http://upload-images.jianshu.io/upload_images/1449977-c137a12698a8ca09.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\n\r\n### 1.Install\r\n* 依赖不少，请耐心等待几分钟。\r\n`\r\n$ npm install yf-api-server --save\r\n`\r\n\r\n* 需要手动创建一下logs记录日志文件的目录\r\n`\r\n$ mkdir logs\r\n`\r\n\r\n* 创建一个数据库和两张表\r\napi_app：保存了appkey和secretkey的记录\r\n![api_app](http://upload-images.jianshu.io/upload_images/1449977-078ca165c31fe440.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\napi_record:记录每一次的接口请求\r\n![api_record](http://upload-images.jianshu.io/upload_images/1449977-2d19c55eddb8e614.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\n\r\nSQL脚本\r\n```\r\n--\r\n-- 表的结构 `api_app`\r\n--\r\n\r\nCREATE TABLE IF NOT EXISTS `api_app` (\r\n  `id` int(12) NOT NULL AUTO_INCREMENT,\r\n  `appid` int(12) NOT NULL,\r\n  `appname` varchar(120) NOT NULL,\r\n  `apptype` varchar(120) NOT NULL,\r\n  `appkey` varchar(120) NOT NULL,\r\n  `secretkey` varchar(120) NOT NULL,\r\n  `appenvironment` varchar(120) NOT NULL,\r\n  `approot` varchar(120) NOT NULL,\r\n  `createAt` int(32) NOT NULL,\r\n  `updateAt` int(32) NOT NULL,\r\n  `delflag` int(12) NOT NULL,\r\n  `status` int(12) NOT NULL DEFAULT '1',\r\n  `about` varchar(250) NOT NULL,\r\n  `appurl` varchar(500) DEFAULT NULL,\r\n  PRIMARY KEY (`id`),\r\n  UNIQUE KEY `appid` (`appid`)\r\n) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;\r\n\r\n--\r\n-- 表的结构 `api_record`\r\n--\r\n\r\nCREATE TABLE IF NOT EXISTS `api_record` (\r\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\r\n  `appkey` varchar(100) NOT NULL,\r\n  `createAt` bigint(20) NOT NULL,\r\n  `timestamp` bigint(20) NOT NULL,\r\n  `param` varchar(1000) NOT NULL,\r\n  `sign` varchar(100) NOT NULL,\r\n  `v` varchar(100) NOT NULL,\r\n  `method` varchar(100) NOT NULL,\r\n  `updateAt` bigint(20) NOT NULL,\r\n  `delflag` tinyint(4) NOT NULL DEFAULT '0',\r\n  PRIMARY KEY (`id`)\r\n) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;\r\n\r\nINSERT INTO `api_app` (`id`, `appid`, `appname`, `apptype`, `appkey`, `secretkey`, `appenvironment`, `approot`, `createAt`, `updateAt`, `delflag`, `status`, `about`, `appurl`) VALUES\r\n(1, 10001, 'YFDemoKey', 'PC', 'a81bc1bb1122323b', '3fc4h39d3ed9b33b67fcbc359131e7ee', 'DEV', '*', 1462610156, 1462773916, 0, 1, 'YF所有，抄袭必究', NULL)\r\n\r\n-- 这里的appkey 和 secretkey会在接口调用的时候被使用到\r\n-- appkey : 'a81bc1bb1122323b'\r\n```\r\n\r\n\r\n\r\n\r\n### 2.Config\r\n```\r\n$ touch config.js\r\n$ vi config.js\r\n```\r\n\r\n```\r\nvar k = {\r\n  db:{\r\n      host: '192.168.1.1',\r\n      port:3306,\r\n      username:'root',\r\n      password:'',\r\n  },\r\n  database:{'api':'api'},\r\n  server:{port:8080},\r\n  dev:'DEV'\r\n};\r\n\r\nvar getDbConfig = function(option){\r\n    var originConfig = {\r\n        host: 'localhost',\r\n        port:3306,\r\n        username:'root',\r\n        password:'',\r\n        debug:false,\r\n        pool:{\r\n            connectionLimit:10,\r\n            queueLimit:0,\r\n            waitForConnections:true\r\n        }\r\n    };\r\n    for(var key in k.db){\r\n        originConfig[key] = k.db[key];\r\n    }\r\n    for(var key in option){\r\n        originConfig[key] = option[key];\r\n    }\r\n    return originConfig;\r\n};\r\nmodule.exports = {\r\n    db:(function(database){\r\n        var _dbs = {};\r\n        for(var d in database){\r\n            _dbs[d] = getDbConfig({database:database[d]});\r\n        }\r\n        return _dbs;\r\n    })(k.database),\r\n    server: k.server||{\r\n        port: k.dev == 'PRODUCT'?9001:8080\r\n    },\r\n    defaultVersion:'0.0.1',\r\n    dev:k.dev,\r\n    log4js: {\r\n        appenders: [\r\n            { type: 'console' },{\r\n                type: 'file',\r\n                filename: 'logs/access.log',\r\n                maxLogSize: 1024 * 1024 * 100, //100Mb一个文件\r\n                backups:10,\r\n                category: 'normal'\r\n            }\r\n        ],\r\n        replaceConsole: true,\r\n        levels:{\r\n            dateFileLog: 'debug',\r\n            console: 'errno'\r\n        }\r\n    }\r\n};\r\n\r\n```\r\n\r\n### 3.Code\r\n编写代码，最终的目录结构预览如下\r\n\r\n![项目目录](http://upload-images.jianshu.io/upload_images/1449977-7ed3cc46880a3f01.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\n\r\n```\r\n$ mkdir V0.0.2 && cd V0.0.2 && touch index.js && vi index.js\r\n```\r\n\r\n```\r\n'use strict';\r\nvar _ = require('underscore');\r\nvar Q = require('q');\r\nmodule.exports = function(C,M,H){\r\n  var q = Q.defer();\r\n\r\n  M.test = function(){\r\n    var _q = Q.defer();\r\n    _q.resolve({data:\"中文和zimu from v0.0.2\"})\r\n    return _q.promise;\r\n  }\r\n\r\n  q.resolve({'foo':M});  //业务名称： foo.test\r\n  return q.promise;\r\n};\r\n\r\n```\r\n\r\n```\r\n$ touch app.js\r\n$ vi app.js\r\n```\r\n\r\n```\r\nvar async = require('async');\r\nvar config = require('./config.js');\r\nvar M = {};\r\nvar v002 = require('./V0.0.2');\r\nvar yfserver = require('yf-api-server');\r\nvar app = yfserver(config);\r\n\r\nasync.parallel({\r\n  '0.0.2':function(cb){\r\n    v002(config,M,yfserver.hook).then(function(biz){\r\n      cb(null,biz);\r\n    });\r\n  }\r\n},function(err,results){\r\n    if(err){\r\n      console.log(err);\r\n      return;\r\n    }\r\n    app.setBizModules(results);\r\n    app.start();\r\n  }\r\n);\r\n\r\n```\r\n### 4.Run\r\n`\r\n$ node app.js\r\n`\r\n\r\n![node app.js](http://upload-images.jianshu.io/upload_images/1449977-d50ed01a85013779.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\n\r\npostman测试\r\n![postman测试](http://upload-images.jianshu.io/upload_images/1449977-7c444753ed6ec12f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\n\r\n### 5.Other\r\n到此，一个能满足基本业务的api服务端就搭建好了\r\n目前我的项目在使用它做生产环境了\r\n\r\n![代码结构](http://upload-images.jianshu.io/upload_images/1449977-f3a2a954324d56dd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\n\r\npm2 logs\r\n\r\n![pm2 logs](http://upload-images.jianshu.io/upload_images/1449977-57ad8df18e055c0f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\n\r\n欢迎拍砖~~\r\n\r\n### 6.Demo\r\n\r\n我部署了一个demo项目，代码在这里 [https://github.com/yfsoftcom/yf-demo-api](https://github.com/yfsoftcom/yf-demo-api)\r\n\r\n请笑纳~\r\n\r\n![测试的](http://upload-images.jianshu.io/upload_images/1449977-b787b6f88cfcc4ae.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\r\n","maintainers":[{"name":"yfsoft","email":"yfsoftcom@126.com"}],"time":{"modified":"2022-06-29T07:28:50.544Z","created":"2016-06-09T07:15:40.028Z","0.0.1":"2016-06-09T07:15:40.028Z","0.0.2":"2016-06-09T07:31:57.539Z","0.0.3":"2016-06-09T07:38:09.391Z","0.0.4":"2016-06-15T02:00:57.293Z","0.0.5":"2016-06-16T03:26:34.892Z","0.0.6":"2016-06-16T08:22:40.569Z","0.0.7":"2016-06-16T08:38:50.627Z","0.0.8":"2016-06-16T09:20:50.022Z","0.0.9":"2016-06-17T01:13:34.244Z","0.0.10":"2016-06-17T02:19:04.612Z","0.0.11":"2016-06-17T02:25:29.268Z","0.0.12":"2016-06-17T04:04:52.949Z","0.0.13":"2016-06-17T04:17:04.572Z","0.0.14":"2016-06-17T04:21:42.967Z","1.0.0":"2016-08-15T08:00:56.687Z","1.0.1":"2016-08-15T08:22:12.274Z","1.0.2":"2016-08-15T09:36:15.797Z","1.0.3":"2016-08-17T04:45:59.593Z","1.0.4":"2016-08-17T05:05:30.396Z","1.0.5":"2016-08-17T05:26:08.798Z","1.0.6":"2016-08-17T05:59:25.660Z","1.0.10":"2016-08-17T06:16:24.524Z","1.0.11":"2016-08-19T02:28:08.520Z","1.0.12":"2016-08-24T08:00:30.962Z","1.0.13":"2016-08-24T08:18:00.318Z"},"readmeFilename":"README.md"}