{"_id":"@2o3t/koa2-proxy-middleware","_rev":"5-26e280b382491005810b330955a7ece0","name":"@2o3t/koa2-proxy-middleware","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.1":{"name":"@2o3t/koa2-proxy-middleware","version":"0.0.1","description":"http proxy middleware for koa2","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["http-proxy-middleware","middleware","proxy","koa2","reverse","http","https","connect","websocket","ws","cors"],"author":{"name":"Zyao89","email":"zyao89@gmail.com"},"license":"MIT","dependencies":{"2o3t-logger":"^0.3.9","2o3t-utility":"^0.1.2","http-proxy":"^1.17.0","lodash":"^4.17.11"},"devDependencies":{"eslint-config-2o3t":"^1.1.4","koa":"^2.7.0"},"engines":{"node":">= 8.0.0"},"_id":"@2o3t/koa2-proxy-middleware@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"zyao89","email":"305161066@qq.com"},"dist":{"integrity":"sha512-yXm51RkguCZxCABsGwQe4UpABX2pjv3jh0rfHO2DhbsVULmjPVJayn/q1qawiJ0gEOmNIjmhGQ53JKsZWBXE1Q==","shasum":"52587ebf75f11bc6aa02c0773bd05f3e1c146fc2","tarball":"https://registry.npmjs.org/@2o3t/koa2-proxy-middleware/-/koa2-proxy-middleware-0.0.1.tgz","fileCount":11,"unpackedSize":28595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcuZ6vCRA9TVsSAnZWagAAhFIP+wbtqd+OqYLdRro2qwTE\nb7XMB0a6EKxOF/LpspzB4ebfMQ4ENJJ3+J0D0XT03rd2pqqJrrMT+yhvxA/c\n+RPDJc+cs/d2yxOlCWPIpbdM5i34HHpyDOpkRPxTpNc2pJ0vVR71ls6+bT7C\nVhWYv7ZEe9AH6040EnOSaO7xnl34JsVdzjrVFjahhUXFCGF8beaYJ3mthlWb\nbr4zpz603iILHBAgglenmIAj8gUrJfCwiGyGTdWZGfJJt73P1x1ZrDo172SV\nhdNosRFJF63iSoCLXXd53M45E+35rwdyUiudxooYAxMTcjqiT0NL5WYoiKhe\nNIlgH/oGsa8ZcujmkZGy61EflRCGFQLgZ7u/0Sq5iaM3l4EOV+rvCfgV8Uzl\nF5cgEjSvKn9qAXCyT4jQu017Q/CvrNjxeh99eG11aTU7x9llCkj64IaH2FFt\nykERXMaz3CwSM/3xauWDqatIZ6su7HXuiE6zegRtgxyjVOs5OEPfhL74futo\nJ1p4MoW0+j2BhjAvijiN0G8lnguN3VUgdS/tlDoDRzxB0GiUg/Q73v26xp+4\nMymOc+nSy8XV842gsgc0z4jaiLAdMeS+lzrpMskjMSdUPP18IyuTGVe2lOj2\n/pL91CsKDF/9z1P0mRJCf56elHwqp0HvbiPgam0mxKCnxNwieiKA+iSI//Ts\nMbe1\r\n=T9H0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBjkXIpxL76AP5NsI0WOcpe/78ac8JdDUn78hqPVBOdvAiEApro1kWlkfENB8XF4MJyplMZCFjnGMAvKl0QuEW0tqKE="}]},"maintainers":[{"name":"zyao89","email":"305161066@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa2-proxy-middleware_0.0.1_1555668654824_0.7344740714857947"},"_hasShrinkwrap":false},"0.0.2":{"name":"@2o3t/koa2-proxy-middleware","version":"0.0.2","description":"http proxy middleware for koa2","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["koa-proxy","koa2-proxy","http-proxy-middleware","koa-proxy-middleware","koa2-proxy-middleware","middleware","proxy","koa2","reverse","http","https","connect","websocket","ws","cors"],"author":{"name":"Zyao89","email":"zyao89@gmail.com"},"license":"MIT","dependencies":{"2o3t-logger":"^0.3.9","2o3t-utility":"^0.1.2","http-proxy":"^1.17.0","lodash":"^4.17.11"},"devDependencies":{"eslint-config-2o3t":"^1.1.4","koa":"^2.7.0"},"engines":{"node":">= 8.0.0"},"bugs":{"url":"https://github.com/2o3t/koa2-proxy-middleware/issues"},"homepage":"https://github.com/2o3t/koa2-proxy-middleware","repository":{"type":"git","url":"git+https://github.com/2o3t/koa2-proxy-middleware.git"},"gitHead":"4bb39ff55d73c9fcd8370154706dce77e5378682","_id":"@2o3t/koa2-proxy-middleware@0.0.2","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"zyao89","email":"305161066@qq.com"},"dist":{"integrity":"sha512-8tNdWS7vdymIGQg8Ne3Zad0zoGePUFe5yRt/ZIs+e0uyxBub2IQEL205e80dP1UzASauMtdnjqv4VYcMOsApJA==","shasum":"d7ab11927d727e163efe4292d5cbe98667f321d5","tarball":"https://registry.npmjs.org/@2o3t/koa2-proxy-middleware/-/koa2-proxy-middleware-0.0.2.tgz","fileCount":11,"unpackedSize":29088,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc569FCRA9TVsSAnZWagAAMHUP/j0xR5U/VKBvMAOPRzxm\nlcMRT+Qt8Nb/SP0J4f9A5+w8g0zB3t/P6KK6NU9oZslyTeWuBR435KG13oGz\nNvdcNgmUuKh2JD/UOI+MLZGbUOOKMxgQeK9xnlYrPKHdpdazGU5FwZeAIQrk\nw7S5iSKrfs/h1d3zYrMlnv8CpiWNZy/taFztIP2ILzLcPWXJoBuVNe3OrF5w\nskkLkllidIAs+sZsR/nxlZLFQ+sMdHQyrjplbtxe1SSvbSUq69mmEYrLK4m1\n5IbEbk88fKzbjCx2OEP4BsivxJRbN7jFKWJJ2rltiNJiHA5AoyaBNsD6mP7B\n6Adgl4JAXtv3ILmhIn24vqh3S5dDhSameHxTb3j3mA3clftqZRfxzmNSen3a\nog9+XYVGFFHBWiHMowt0z5vZ/ibFSYuv41QM7Dp3FEDaMVeHptngHDyibrgi\neFkVg0O63maONUnvu3LBDMVjHSDxgNhLmB3Y0GU6sMoqQkmIeDGJMKkI1Qni\nQOqfZvGmOj6uOWTYHUG1gU4cwJJyqU4ARCZOZa8EgFatEONMaCOeRoh1Whmi\nCpQFy7zOY87NqnEDAG1vKPUWjJiB/abL4kSy91XTlJIeJf+Nb1Gj7px3zzL+\nRmH2fZkgNCyUoL5dkKiexW6YPGz9YM+0rwexXxsyvmuWZb/Ly8OAgWpor0YO\nvUMA\r\n=jH/h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBPM1UAAEFCppystmu7fTAOdOaktnZ9eO9XIhHXGfp4wAiB6T33vWPQaC5DnSDdUQnYeSgZ3gnROc48ackmH4zOIlQ=="}]},"maintainers":[{"name":"zyao89","email":"305161066@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa2-proxy-middleware_0.0.2_1558687556796_0.24869678256807393"},"_hasShrinkwrap":false},"0.0.3":{"name":"@2o3t/koa2-proxy-middleware","version":"0.0.3","description":"http proxy middleware for koa2","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["koa-proxy","koa2-proxy","http-proxy-middleware","koa-proxy-middleware","koa2-proxy-middleware","middleware","proxy","koa2","reverse","http","https","connect","websocket","ws","cors"],"author":{"name":"Zyao89","email":"zyao89@gmail.com"},"license":"MIT","dependencies":{"2o3t-logger":"^0.3.9","2o3t-utility":"^0.1.2","http-proxy":"^1.17.0","lodash":"^4.17.11"},"devDependencies":{"eslint-config-2o3t":"^1.1.4","koa":"^2.7.0"},"engines":{"node":">= 8.0.0"},"bugs":{"url":"https://github.com/2o3t/koa2-proxy-middleware/issues"},"homepage":"https://github.com/2o3t/koa2-proxy-middleware","repository":{"type":"git","url":"git+https://github.com/2o3t/koa2-proxy-middleware.git"},"gitHead":"4bb39ff55d73c9fcd8370154706dce77e5378682","_id":"@2o3t/koa2-proxy-middleware@0.0.3","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"zyao89","email":"305161066@qq.com"},"dist":{"integrity":"sha512-gy7ZtMx80JnY/aWh4Si8A4tuCj47rhUcryDoKBrBZ5PRJrdvNYrIjyYDbfOLwl7AzujDCHJhSoh6nwKoBtqtUA==","shasum":"12d2908bc7afea4b9501391aa7a861019c28a0f2","tarball":"https://registry.npmjs.org/@2o3t/koa2-proxy-middleware/-/koa2-proxy-middleware-0.0.3.tgz","fileCount":11,"unpackedSize":29046,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6CzoCRA9TVsSAnZWagAAbIQP/ipHdt/vR6BbauXjKmqR\nK62aAFDwD2rl1PmEAbHO0I6AcoUpgTD+wfoIkkqRQVbFyE5Jm3szl6C4dcsg\nUKKrNjvWvmdclQCeVU7w+AmQEWkvyZqpaWIGclSMNZO7BgqTO8J4ixt0icCf\nd15koIjOK+zIZiZi9BwRxu8sVUcYWc3q9P4kbLxnfBm3npkXePcovHEVzaH6\n3wJP07OqYNo36dIPxeWe0cwa6SU725O8zqvojYLMa2bzzwRT/6h4uu7pR2hj\nz3FMXZxFYsC0cw14/LzsTbT47jGwarBvNx5briGu7OODHZCXPXtzvzDQITYr\n5OJ4wu4pMOYfW279YOXpgbipN+Ax8iZeEMi7/rOG/0V44UfMo5UU/lhNyW6v\n5B9h+n96uecqn4zznChD+8ByjxfLcRh7QXHvqAWWjKgYvyVSzQYqil9FT3DH\nAU2gKhjkJ/WS6cINJTVsMwZJOqHbysT1eCm4SXQZKt1IPCN0dq410B4FtKUj\nxG00ssrSiRxjCGxndevKr/gXGlkwnvdB7f4tq1Tf1/6fzPactPb4JJDlZ29C\nUWZuJt9oIjC3LAhVCc0OI1f/3itzvYRdblwOoW8kG3ZcUYumPVytyHevFori\nZI8RnJnTDIu5+Wtmmrq65qw9/dpLBnEwKNvkD0qfnlryFlHnoxZVXcqos9ja\ntMjY\r\n=gvYe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2GJjHLFA3w/qje81QfT/3T9z0hDc+In9FUL0KlxjDqAIhALBJErlUSx54uYpkPoP+VG3HICiBWf/V+Efph/m1AhRl"}]},"maintainers":[{"name":"zyao89","email":"305161066@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa2-proxy-middleware_0.0.3_1558719719050_0.7237691498836183"},"_hasShrinkwrap":false},"0.0.4":{"name":"@2o3t/koa2-proxy-middleware","version":"0.0.4","description":"http proxy middleware for koa2","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["koa-proxy","koa2-proxy","http-proxy-middleware","koa-proxy-middleware","koa2-proxy-middleware","middleware","proxy","koa2","reverse","http","https","connect","websocket","ws","cors"],"author":{"name":"Zyao89","email":"zyao89@gmail.com"},"license":"MIT","dependencies":{"2o3t-logger":"^0.3.9","2o3t-utility":"^0.1.2","http-proxy":"^1.17.0","lodash":"^4.17.11"},"devDependencies":{"eslint-config-2o3t":"^1.1.4","koa":"^2.7.0"},"engines":{"node":">= 8.0.0"},"bugs":{"url":"https://github.com/2o3t/koa2-proxy-middleware/issues"},"homepage":"https://github.com/2o3t/koa2-proxy-middleware","repository":{"type":"git","url":"git+https://github.com/2o3t/koa2-proxy-middleware.git"},"gitHead":"ee0d025658f74c962898aee6133699f4bf1fe2c6","_id":"@2o3t/koa2-proxy-middleware@0.0.4","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"zyao89","email":"305161066@qq.com"},"dist":{"integrity":"sha512-wCWk0wFZMLA1S8NVzsrJyuQcDP8Wjj+yOYNgqgRWI0tEnyywwrIaU6E+70Go35RJT7jg8lHcfscv9dfNABY/Sg==","shasum":"5041983b5ededb4fdabe519d432927be5f4c01c1","tarball":"https://registry.npmjs.org/@2o3t/koa2-proxy-middleware/-/koa2-proxy-middleware-0.0.4.tgz","fileCount":12,"unpackedSize":35367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6DcGCRA9TVsSAnZWagAAGBEP/j0vgcIAQOf113F5pc+m\nciewmhpNqRt+uHDWzH0gYLehpW0Qg7QKHEhTGY0ypRJPwtBPkDxLFj0oaw2e\n2tOglRwJd5q+DOoVM6BRaiJ4ceivnkqWEOpHS+/8xh0znJhAHDNx3F0n+DwM\nUAPuT1DbY5hNSd24r0FKD1YJUUSJeqqrgz/bkHh9K9dZgr4g7lYACD37ayZp\n5CrIUMIUbCF4iIIp+nLP4TiQDF1wvDth2aATVECEYhSZm0PjOmWP4NQO4/Il\nML/MlkSFT9X90q+byyPqbR/EPhiu1AMzHwaH8Kr9nSumF5+I1L3+O7Rev4Le\nRIyPNzMVtx43VhqGA68HY13QkH49tL59CkzSP9yuhHKWq/vwh22qUCaOaOvs\n6hu9ePF7FY/IT8Ne4qfeWvnZxmkMcaoRzNZ0KgnhO76R19ZUYa10BfdEE6lM\nLpCuYAcNDo1U2wXwOwwz7PTvn7LkgVYT2gRvq3n6hrVnwOoh7LLA/iHCgQxR\nkn+Q+1awQxVC1tH+ljP15UQDN3sNSMpZA5E9GXDpkXjQXuJAqtuNRO8TQnTx\nrlD/5t68819TTbWWHy34nRwLc1Oy7Ay61cGi3yxooH3+SWacsKV9LlNJ8DA8\nK6xHuplSM0yTsEaoZKeuDSeASXnOMzF6lpr6yER0D88jgwMajMx32S3oIbg4\nk9w/\r\n=Ax/b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1y93fUFZEJn64F0JhKtv/FaTb5MdROYFrlPcBsisUHQIgfY9fwYq5edHCXL6U3UOLtQNoYDTHimGvygh0NCUWflI="}]},"maintainers":[{"name":"zyao89","email":"305161066@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa2-proxy-middleware_0.0.4_1558722310069_0.003439329712670247"},"_hasShrinkwrap":false},"0.0.5":{"name":"@2o3t/koa2-proxy-middleware","version":"0.0.5","description":"http proxy middleware for koa2","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["koa-proxy","koa2-proxy","http-proxy-middleware","koa-proxy-middleware","koa2-proxy-middleware","middleware","proxy","koa2","reverse","http","https","connect","websocket","ws","cors"],"author":{"name":"Zyao89","email":"zyao89@gmail.com"},"license":"MIT","dependencies":{"2o3t-logger":"^0.3.9","2o3t-utility":"^0.1.2","http-proxy":"^1.17.0","lodash":"^4.17.11"},"devDependencies":{"eslint-config-2o3t":"^1.1.4","koa":"^2.7.0"},"engines":{"node":">= 8.0.0"},"bugs":{"url":"https://github.com/2o3t/koa2-proxy-middleware/issues"},"homepage":"https://github.com/2o3t/koa2-proxy-middleware","repository":{"type":"git","url":"git+https://github.com/2o3t/koa2-proxy-middleware.git"},"gitHead":"42c495ab4bfa24ac43f45c48915a8b81535df89c","_id":"@2o3t/koa2-proxy-middleware@0.0.5","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"zyao89","email":"305161066@qq.com"},"dist":{"integrity":"sha512-avUuxLNMWb/xo6p34s/Jad+2JJz4q4R/Une7H0zbf4xUl2SldkeBhzAIznb1XuUw/thzWfdRJk8IIaASQUilrA==","shasum":"90c34b29cc8811f8f31f96b7190e74f726ef54f4","tarball":"https://registry.npmjs.org/@2o3t/koa2-proxy-middleware/-/koa2-proxy-middleware-0.0.5.tgz","fileCount":12,"unpackedSize":35197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQ9fxCRA9TVsSAnZWagAAMFoP/22X10YcKkem1HzOgUV3\nvPVdHjW909YRbysn8noJAycdG1ldMuI+Eh5Hc57fJ0NiXBqDz1f2fP7WvGa4\nhGPo60VQ6TjhUZ92t7AjutFr8/zlkvZ5PSe83oHX84lCG5RI3sM3mBOqD2l9\nbQcgr/VVeJL1t5UjZEotqMKhd6QUCYxkoXMwr4XVuBW1r/XkYphyY/oEMhwq\n07ht4VsYnnqQtcU33LGxeEvaoLIHG0clXyC2k/YGzHjwqOfivxdDZhF2F4jN\nZTlUF6GpWEaZdF2dgMjX2DJasHNoJWGJO0UvTANzMCRgZwaN2lW6smz9PuY3\naJ0tOsbhb+d8/FKw2poe4R7ews3LSW8it03awEnf2rKSLz8ndnIxgIxZWJ9d\n6JrON0RmgRHhoW6bxN19AK3AB3xVfDbyeGHezaB4+mH3urwQlH16QHGtuoNC\n5ETlTa25R0PVKLIhuWRLhhc6kNcnMbQdFuFI96wCs5ERuuBvzXOS8GeOVzaW\niEXeGr/OCCSr60tjnf1bdGnfV5OnJ9AkQ+Y53rfXvo6i8DxUUOrmdaZjiRzK\noH/Ysr0C0ge4AtvhRVcFGzAOxcWrQb57UYg5zMXvIwmaRu980tD9YnTX+T3T\nWVb0AKl2sy6Y/4LIaRP7+7fZ+UOLJLs2BkhyCL87SoN883vc1JB1W36YO3iR\nc532\r\n=zHYZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDK0VQWl82rgRAU9IWVV389QdZR1JOOm9DxyDi5PK8DBAiEAq8rCaez5oWcFzAuI5becbEfMkhfkzk+7X4564LiJKyA="}]},"maintainers":[{"name":"zyao89","email":"305161066@qq.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/koa2-proxy-middleware_0.0.5_1564727280952_0.16212550502192458"},"_hasShrinkwrap":false}},"time":{"created":"2019-04-19T10:10:54.652Z","0.0.1":"2019-04-19T10:10:54.989Z","modified":"2022-04-04T10:42:52.633Z","0.0.2":"2019-05-24T08:45:56.922Z","0.0.3":"2019-05-24T17:41:59.203Z","0.0.4":"2019-05-24T18:25:10.286Z","0.0.5":"2019-08-02T06:28:01.126Z"},"maintainers":[{"name":"zyao89","email":"305161066@qq.com"}],"description":"http proxy middleware for koa2","keywords":["koa-proxy","koa2-proxy","http-proxy-middleware","koa-proxy-middleware","koa2-proxy-middleware","middleware","proxy","koa2","reverse","http","https","connect","websocket","ws","cors"],"author":{"name":"Zyao89","email":"zyao89@gmail.com"},"license":"MIT","readme":"# @2o3t/koa2-proxy-middleware\n\nNode.js proxying made simple. Configure proxy middleware with ease for [koa2](https://github.com/koajs/koa).\n\nPowered by [`http-proxy-middleware`](https://github.com/chimurai/http-proxy-middleware). [![GitHub stars](https://img.shields.io/github/stars/chimurai/http-proxy-middleware.svg?style=social&label=Star)](https://github.com/chimurai/http-proxy-middleware)\n\n## TL;DR\n\nProxy `/api` requests to `http://www.2o3t.cn`\n\n```javascript\nconst Koa = require('koa');\nconst app = new Koa();\nconst proxy = require('@2o3t/koa2-proxy-middleware');\n\n// app.use(proxy({ target: 'http://www.2o3t.cn', changeOrigin: true }));\n\nconst Router = require('koa-router');\nconst router = new Router();\nrouter.use(\n  '/api',\n  proxy({ target: 'http://www.2o3t.cn', changeOrigin: true })\n);\napp.use(router.routes())\n  .use(router.allowedMethods());\napp.listen(3000);\n// http://localhost:3000/api/foo/bar -> http://www.2o3t.cn/api/foo/bar\n```\n\n_All_ `http-proxy` [options](https://github.com/nodejitsu/node-http-proxy#options) can be used, along with some extra `http-proxy-middleware` [options](#options).\n\n:bulb: **Tip:** Set the option `changeOrigin` to `true` for [name-based virtual hosted sites](http://en.wikipedia.org/wiki/Virtual_hosting#Name-based).\n\n## Install\n\n```javascript\n$ npm install --save-dev @2o3t/koa2-proxy-middleware\n// or\nyarn add @2o3t/koa2-proxy-middleware\n```\n\n## Core concept\n\nProxy middleware configuration.\n\n#### proxy([context,] config)\n\n```javascript\nconst proxy = require('@2o3t/koa2-proxy-middleware');\n\nconst apiProxy = proxy('/api', { target: 'http://www.2o3t.cn' });\n//                   \\____/   \\_____________________________/\n//                     |                    |\n//                   context             options\n\n// 'apiProxy' is now ready to be used as middleware in a server.\n```\n\n- **context**: Determine which requests should be proxied to the target host.\n  (more on [context matching](#context-matching))\n- **options.target**: target host to proxy to. _(protocol + host)_\n\n(full list of [`http-proxy-middleware` configuration options](#options))\n\n#### proxy(uri [, config])\n\n```javascript\n// shorthand syntax for the example above:\nconst apiProxy = proxy('http://www.2o3t.cn/api');\n```\n\nMore about the [shorthand configuration](#shorthand).\n\n## Example\n\nAn example with `koa2` server.\n\n```javascript\nconst Koa = require('koa');\nconst app = new Koa();\nconst proxy = require('@2o3t/koa2-proxy-middleware');\n\n// proxy middleware options\nconst options = {\n  target: 'http://www.2o3t.cn', // target host\n  changeOrigin: true, // needed for virtual hosted sites\n  ws: true, // proxy websockets\n  pathRewrite: {\n    '^/api/old-path': '/api/new-path', // rewrite path\n    '^/api/remove/path': '/path' // remove base path\n  },\n  router: {\n    // when request.headers.host == 'dev.localhost:3000',\n    // override target 'http://www.2o3t.cn' to 'http://localhost:8000'\n    'dev.localhost:3000': 'http://localhost:8000'\n  }\n};\n\n// create the proxy (without context)\nconst exampleProxy = proxy(options);\n\napp.use(exampleProxy)\n\napp.use(ctx => {\n    console.log(ctx.status);\n});\n\napp.listen(3003);\n```\n\n## Context matching\n\nProviding an alternative way to decide which requests should be proxied; In case you are not able to use the server's [`path` parameter](http://expressjs.com/en/4x/api.html#app.use) to mount the proxy or when you need more flexibility.\n\n[RFC 3986 `path`](https://tools.ietf.org/html/rfc3986#section-3.3) is used for context matching.\n\n```\n         foo://example.com:8042/over/there?name=ferret#nose\n         \\_/   \\______________/\\_________/ \\_________/ \\__/\n          |           |            |            |        |\n       scheme     authority       path        query   fragment\n```\n\n- **path matching**\n\n  - `proxy({...})` - matches any path, all requests will be proxied.\n  - `proxy('/', {...})` - matches any path, all requests will be proxied.\n  - `proxy('/api', {...})` - matches paths starting with `/api`\n\n- **multiple path matching**\n\n  - `proxy(['/api', '/ajax', '/someotherpath'], {...})`\n\n- **wildcard path matching**\n\n  For fine-grained control you can use wildcard matching. Glob pattern matching is done by _micromatch_. Visit [micromatch](https://www.npmjs.com/package/micromatch) or [glob](https://www.npmjs.com/package/glob) for more globbing examples.\n\n  - `proxy('**', {...})` matches any path, all requests will be proxied.\n  - `proxy('**/*.html', {...})` matches any path which ends with `.html`\n  - `proxy('/*.html', {...})` matches paths directly under path-absolute\n  - `proxy('/api/**/*.html', {...})` matches requests ending with `.html` in the path of `/api`\n  - `proxy(['/api/**', '/ajax/**'], {...})` combine multiple patterns\n  - `proxy(['/api/**', '!**/bad.json'], {...})` exclusion\n\n  **Note**: In multiple path matching, you cannot use string paths and wildcard paths together.\n\n- **custom matching**\n\n  For full control you can provide a custom function to determine which requests should be proxied or not.\n\n  ```javascript\n  /**\n   * @return {Boolean}\n   */\n  const filter = function(pathname, req) {\n    return pathname.match('^/api') && req.method === 'GET';\n  };\n\n  const apiProxy = proxy(filter, { target: 'http://www.2o3t.cn' });\n  ```\n\n## Options\n\n### [`http-proxy-middleware` configuration options](https://github.com/chimurai/http-proxy-middleware#options)\n\n### new options\n\n- `option.proxyBody`: [Boolean|Function] Collect the results returned by the agent and assign them to `ctx.body`. Default: false.\n\n```js\noption.proxyBody: true,\n// or\noption.proxyBody: function(json, proxyRes, req, res, ctx) {\n    ctx.body = json;\n}\n```\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2018-2019 Zyao89\n","readmeFilename":"README.md","homepage":"https://github.com/2o3t/koa2-proxy-middleware","repository":{"type":"git","url":"git+https://github.com/2o3t/koa2-proxy-middleware.git"},"bugs":{"url":"https://github.com/2o3t/koa2-proxy-middleware/issues"}}