{"_id":"2way-router","_rev":"28-461ff277a34c0c15dd21c742d4786680","name":"2way-router","description":"2-way router","dist-tags":{"latest":"1.3.1"},"versions":{"1.0.3":{"name":"2way-router","version":"1.0.3","description":"2-way router","main":"index.js","dependencies":{"vow":"~0.3.13"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router"],"scripts":{"test":"./node_modules/.bin/jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.0.3","dist":{"shasum":"1cba2f0e89ff5bdc62f92c6e81ce1df51d09a1e6","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.0.3.tgz","integrity":"sha512-0Q7RHgtfolOtQJtx0D53G97QDADcsqxHPH+NMxB16MEbrduX6GlqTIrVhJwOtu8Zr3WJ6i97K5zDkpeAcea/yg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYDmSQpRC+qi+HfjGeFdzkALyr/k+QEFdO3/HRDvQQUAIgb0UDVL9LoKaKb/uP9Z+DW24rlXedV1J/nkm/Nlh7LeI="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}]},"1.0.4":{"name":"2way-router","version":"1.0.4","description":"2-way router","main":"index.js","dependencies":{"vow":"~0.3.13"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router"],"scripts":{"test":"./node_modules/.bin/jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.0.4","dist":{"shasum":"97415af40aa844f1193b0199ea478c10502591c7","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.0.4.tgz","integrity":"sha512-k+f68fRzUrNro8XyHjUR9ABdPc31OSvQsqIjnbdo9C4j4TyePaB20IlxsTKbonVXvwfbCyRgGKLXYb1P8V903Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCN02i3HSV8aqJiOfzKiyan73CL2L94q2gZac23MakrNwIgQD0/9V/+Za3Igm9weLJBVW7DD81YlOfGMKKFLa0tt9M="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}]},"1.1.0":{"name":"2way-router","version":"1.1.0","description":"2-way router","main":"index.js","dependencies":{"vow":"~0.3.13"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"./node_modules/.bin/jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.1.0","dist":{"shasum":"459a5f67b532a3400e032c05e5b870f2d8120388","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.1.0.tgz","integrity":"sha512-Ct4U/XWQS9CeD297wHi1cVtfBXNgWZ/EXGlUVWLIVn2Rw4cx7zFC7yhzEiICBkD5U5zQO1r57Ywez8TVoPIgmg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAsT6VSH8Iotz+OuBoz3xdzGz8N0EFZvTsIjMU1hrx5iAiA2gHskIwdtLJPx+FuXodTzvesgf8cL/9LR+p2+n41Jzg=="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}]},"1.1.1":{"name":"2way-router","version":"1.1.1","description":"2-way router","main":"index.js","dependencies":{"vow":"~0.3.13"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"./node_modules/.bin/jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.1.1","dist":{"shasum":"6ed2903cd12aebbcdab031e7fec5880c5ae112f1","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.1.1.tgz","integrity":"sha512-mSngR7gQVIjMp0+ZQOI2RuVG+bm9slV4HCoyowoZVNU1qJIj+kbyrTtbi3gR6Lra6jzfrWRkrYiFpEmXERJE/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqJt9WsWdJM2jHfemaTS6aAAlT+48BCXqGSkoOA94oJQIhAJGbMoX09CV8sk/dDZxd+2uKw6Srz7BPpFi+60oaG/bS"}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}]},"1.2.0":{"name":"2way-router","version":"1.2.0","description":"2-way router","main":"index.js","dependencies":{"promise":"^5.0.0"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"gitHead":"371abdb1adcb258acd550f077f132dba3e4a4631","homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.2.0","_shasum":"a402ad5d0dc397f4b5882a08a5e565fc74b2d9df","_from":".","_npmVersion":"1.5.0-alpha-3","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}],"dist":{"shasum":"a402ad5d0dc397f4b5882a08a5e565fc74b2d9df","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.2.0.tgz","integrity":"sha512-LO3NQS+xVMh0uUPOypyDPGFJzSHobig5wXHwMMWkpUivzFL9ZMiLKI0B6cvAgPT8+U1YLsBI6a04vued0nwJFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICbZWaslA0yoXOthQTNF5u5FdDM7cB+qoFdwNt+Q2f5/AiA3j+5fH2qmGF1hHIURresKikgSCeukNdWWU7GAm/Jt+g=="}]}},"1.2.1":{"name":"2way-router","version":"1.2.1","description":"2-way router","main":"index.js","dependencies":{"promise":"^5.0.0"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"gitHead":"18f069dd2cb070428034d5b1f70749b5d7fb5c2c","homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.2.1","_shasum":"57a7b1be6a175e6aa9baebfdbecc76b2d3c03ee8","_from":".","_npmVersion":"1.5.0-alpha-3","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}],"dist":{"shasum":"57a7b1be6a175e6aa9baebfdbecc76b2d3c03ee8","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.2.1.tgz","integrity":"sha512-XEhcpt/BKB9zJLF3BBdV+LVA7XzSO/9GE7yhedhUI66TTAV82NB4Nb0Rql4RDYy13VuL9SE4REcntg66ooSdIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH40Di8J2xXSWZlpzh2Xs581n8Fxx28SzDV86VDtNK/zAiAbzpQRW6upRBAOPvnt1WbFV23laMfUf+HYtO+1xcjTCA=="}]}},"1.2.2":{"name":"2way-router","version":"1.2.2","description":"2-way router","main":"index.js","dependencies":{"promise":"^5.0.0"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"gitHead":"7377f3733784a1065779a2911118728ebc2f8a9c","homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.2.2","_shasum":"4049447a1910086d93c1601cd45a9f75eba8414d","_from":".","_npmVersion":"1.5.0-alpha-3","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}],"dist":{"shasum":"4049447a1910086d93c1601cd45a9f75eba8414d","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.2.2.tgz","integrity":"sha512-36dKvPSQ1LpEIFoQMxSOSvI1HF+y0wDT0+IdSaMx8QtXc6Zwtcm835oJJO1q5NX0MgijpV+6qkqVWaQ01Sb7yw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCd91Ex4hNza5FQNZftTDDGq7W188UHxVeXGZ+s6+zIkgIgHbKIAAHIyE9otYnG3q+BAsNn8QlM1i/lknSshinKBPo="}]}},"1.2.3":{"name":"2way-router","version":"1.2.3","description":"2-way router","main":"index.js","dependencies":{"promise":"^5.0.0"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"gitHead":"9b1adb210189fe2f251f689945750ddc47fa3169","homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.2.3","_shasum":"6e02f1c9fd3178c4874f3b49483a6732f97ce0e9","_from":".","_npmVersion":"1.5.0-alpha-3","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}],"dist":{"shasum":"6e02f1c9fd3178c4874f3b49483a6732f97ce0e9","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.2.3.tgz","integrity":"sha512-Q2Sze/skhDgcD44/UZObN8WCYUsK4v8SlnBOr8sf6Li0wyxGkR295Hk5oNM5IkHqHSaRzWvjOulsK8WbCCwXlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGlsxwIrUoUByvNLxVmOTOFFDzUcX4jMGOYkFcUAYJdMAiALai11+814iM2kD1JCSVnn5CvXWSheHgxJvoRVkc6o8g=="}]}},"1.2.4":{"name":"2way-router","version":"1.2.4","description":"2-way router","main":"index.js","dependencies":{"promise":"^5.0.0"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"gitHead":"021cefc75ea6479d50735a02c6afe688f1e59e36","homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.2.4","_shasum":"c104c066d0cba14f16eb9894091e482bfbb7cfbb","_from":".","_npmVersion":"1.5.0-alpha-3","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}],"dist":{"shasum":"c104c066d0cba14f16eb9894091e482bfbb7cfbb","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.2.4.tgz","integrity":"sha512-JYB/SZH0ruzvNO6LAIdCsrtKJr8uDuR1qiArA1Gv8IOXUBIbqQkVuX8bPca3kEZGlCwJLdqTFuvDcB6IDmwl1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpgbsqToRt4CMXX6h97SHHDeNgeHhg+u/WZsBNWNTRcQIgUI5VaAoWGAkdEbUuUfFadhJcZJ+nwsAjYnqFyQ+UbbQ="}]}},"1.2.5":{"name":"2way-router","version":"1.2.5","description":"2-way router","main":"index.js","dependencies":{"promise":"^5.0.0"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"gitHead":"b4f26db2c68919042ceba87551b404dffac88c00","homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.2.5","_shasum":"f4e44409c96de880cd69adcdf06a94641ecf7b64","_from":".","_npmVersion":"1.5.0-alpha-3","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}],"dist":{"shasum":"f4e44409c96de880cd69adcdf06a94641ecf7b64","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.2.5.tgz","integrity":"sha512-XwdwNudX7YehrJJr5M0mGfqk3LyUgu/Y9puWdYMm8O09ySdvq4Cs1kU6unqsFjsJZKHJM2Nq7Ddr8ZTZNySZSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEN1nb13T2VonCNer8Ew1vLadkggN1C8q5zJJ7tL8o2YAiEAruDD48si7A0MuIQ6/SrQjdHArrkO1YnRg2F3InjV/aQ="}]}},"1.3.0":{"name":"2way-router","version":"1.3.0","description":"2-way router","main":"index.js","dependencies":{"promise":"^5.0.0"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"gitHead":"a5fd256cdea64eb1801ac22b24c99a28aca7f7c3","homepage":"https://github.com/nyakto/2way-router","_id":"2way-router@1.3.0","_shasum":"8099619e8bc0ab9b150417a3a50f7fcd09609e7f","_from":".","_npmVersion":"2.1.6","_nodeVersion":"0.10.33","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}],"dist":{"shasum":"8099619e8bc0ab9b150417a3a50f7fcd09609e7f","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.3.0.tgz","integrity":"sha512-kV77UGSe029Wv6aICTiUlmThnFOOw4eTov3v33wn+foTDIpPT6ysvIhM1quz07vMVoCETgnRdAsl72xkPtYL/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGjolVbwf+60okEiWdsNA3QIph+oXkICu60EEpgwZsUzAiEAwXQj6PmAFcMgb9XX/atMu4GFdJ6l0K7Z9hGnFO7Xu5Q="}]}},"1.3.1":{"name":"2way-router","version":"1.3.1","description":"2-way router","main":"index.js","dependencies":{"promise":"^5.0.0"},"directories":{"lib":"./lib"},"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"keywords":["router","two-way","async","promises"],"scripts":{"test":"jasmine-node tests"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"license":"MIT","bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"engines":{"node":">=0.8"},"devDependencies":{"jasmine-node":"~1.14.3"},"gitHead":"f850c9d8cb6cd534ee380db344af43b1992a41fd","homepage":"https://github.com/nyakto/2way-router#readme","_id":"2way-router@1.3.1","_npmVersion":"6.1.0","_nodeVersion":"10.5.0","_npmUser":{"name":"nyakto","email":"vampire@realtymag.ru"},"dist":{"integrity":"sha512-63Kh9uUmKTva8Sqf30sqC0ckGojWyOKGiaymnqvCPBnaDx4g53fzWJdNmWhP6MpvGKgQEvshSQrLJ8ewEyYg6w==","shasum":"607a34cccc24885b80fbcacd99484f0738bc217a","tarball":"https://registry.npmjs.org/2way-router/-/2way-router-1.3.1.tgz","fileCount":16,"unpackedSize":38283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPbJ4CRA9TVsSAnZWagAAqpoQAI4EPx6Cp34ICSCjKKpj\nESH4YMpU+6k2lkNATT00OQSybHjUZYxkf3NS7rnKXLEl1yTZiKAC/85yx7pV\n/MGQVuVYjzKm1Vi0RmdapYsS1/NAhGfq0fCS7PMhlZQeWytUuOYpkzizt9L8\nXO6SkAlf3dW2iDwGWccU1w6vaywRWjPwGI0OKyjHe0Zpct6Vk2yoWMtE5oY2\nr8bQrnJWyGzrcFmLsc+KiIoXWVe2ElNV0UwZNj+f0SBnp0QsBp2jSibIllkt\nu4MKJLEgQHxmBnENVZCEy3AIsQBnHpcP1HudnSyvaAD/N34uUhZKS+cWanEU\nFj0LtdfrkVbriMM+X3x/1Ed3DsaBkb8LvtFaM7J41vBUDV1Inlw4i6s+Ymo0\n8xAIrbNn3VoqU0dDiDaGXBCK3Dm/AXM7Z14ULtJMDKuTVQopFO+b4yLruIOC\nyYOTJd6m9VFZWSavtQtDAHrLmZMsv+pAUF647FvcMZgvEGyOLMC2LJWJ1Wu6\n/glHls9FZICpbt2V5UjTcQxQE6ILcO50eZQ9xDp6nOzHC5ROgBKIHaViSfI6\nV3k2ia6P35wjdxwU7AY3pDqaU9ZXSCRLFhmIpEEDpVYx0Qlo/IMZipNDM64I\nyd7dBHEJXj3/QhzXM5fe8dj5gkzf+nHB1R6Wk7VtdUfIiRgTOqlX0yi0rsNP\nMBx+\r\n=vY4s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB8fB0fLV2VTMfAtvtpAJVW9E9/UwW6YdNnnM50NHA6qAiEA4uNEQsAsP6BjtLTm6GptRZkKRfdoBcvCA5X/aRYOWKk="}]},"maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/2way-router_1.3.1_1547547254675_0.15120138278450224"},"_hasShrinkwrap":false}},"readme":"2way-router\n===========\n> routing plugin for node.js\n\n## Usage\n#### Defining routes\n```js\nvar Router = require('2way-router');\nvar router = new Router();\n// you must provide your own controllers\nrouter.route('/')\n    .name('main')\n    .controller(mainPageController);\nrouter.route('/news')\n    .name('news')\n    .controller(newsPageController);\nrouter.route('/news/archive/{year ~ /\\\\d{4}/}-{month ~ /\\\\d{2}/}-{day ~ /\\\\d{2}/}/')\n    .name('news-archive')\n    .controller(newsArchiveController);\nrouter.route('/news/{id:int}')\n    .name('news-publication')\n    .controller(newsPublicationsController);\n```\n#### Detecting route\n```js\nrouter.findRoute('/news/archive/2014-06-21/').done(function (info) {\n    var controller = info.route.controller();\n    var params = info.params;\n});\n```\n#### Creating urls\n```js\nrouter.url('news-archive', {\n    year: 2014,\n    month: '06',\n    day: 21,\n    page: 3\n}).done(function (url) {\n    // url === '/news/archive/2014-06-21/?page=3'\n});\n```\n#### Full example\nYou will need to run\n```bash\nnpm install 2way-router express promise\n```\nExample application:\n```js\nvar Router = require('2way-router');\nvar Promise = require('promise');\nvar express = require('express');\nvar router = new Router();\nvar links = [\n\t{\n\t\tpage: 'main',\n\t\ttext: 'main page'\n\t},\n\t{\n\t\tpage: 'news',\n\t\ttext: 'news page'\n\t},\n\t{\n\t\tpage: 'news-archive',\n\t\ttext: 'news archive for today',\n\t\tparams: {\n\t\t\tyear: new Date().getFullYear(),\n\t\t\tmonth: pad(new Date().getMonth() + 1, 2),\n\t\t\tday: pad(new Date().getDate(), 2)\n\t\t}\n\t}\n];\n\nfunction pad(value, length) {\n\tvalue = String(value);\n\twhile (value.length < length) {\n\t\tvalue = '0' + value;\n\t}\n\treturn value;\n}\n\nfunction createPage(name, route) {\n    function pageController(req, res, params) {\n\t\tvar pageContent = 'page: ' + name + ', params: <pre>' + JSON.stringify(params.merge(), null, '  ') + '</pre>';\n\t\tPromise.all(links.map(function (link) {\n\t\t\treturn router.url(link.page, link.params || {});\n\t\t})).then(function (urls) {\n\t\t\tpageContent += '<ul>';\n\t\t\turls.forEach(function (href, index) {\n\t\t\t\tpageContent += '<li><a href=\"' + href + '\">' + links[index].text + '</a></li>';\n\t\t\t});\n\t\t\tpageContent += '</ul>';\n\t\t\tres.status(200).send(pageContent);\n\t\t});\n    }\n\n    router.route(route)\n        .name(name)\n        .controller(pageController);\n}\n\ncreatePage('main', '/');\ncreatePage('news', '/news');\ncreatePage('news-archive', '/news/archive/{year ~ /\\\\d{4}/}-{month ~ /\\\\d{2}/}-{day ~ /\\\\d{2}/}/');\ncreatePage('news-publication', '/news/{id:int}');\n\nvar app = express();\napp.use(function (req, res) {\n\trouter.findRoute(req.url).then(function (info) {\n\t\tinfo.route.controller()(req, res, info.params);\n\t}, function () {\n\t\tres.status(404).send('Not found');\n\t});\n});\napp.listen(8080);\n```\n\n#### API\n##### Router\n\n```router.route(pathTemplate)``` - creates new ```Route```\n\n```router.findRoute(url, [options])``` - searchs for matching route, returns ```Promise<Route>```\n\n```router.url(routeName, [params])``` - creates url for route with name *routeName*, returns ```Promise<string>```\n\n```router.registerType(typeConstructor, names)``` - registers new param type for further usage in routes, must be called before any ```router.route``` calls, type example can be found at [NumberParam.js]\n\n[NumberParam.js]: lib/param/NumberParam.js\n\n##### Route\n\n```route.name([newName])``` - get/set route name\n\n```route.controller([newController])``` - get/set route controller\n\n```route.url([params])``` - creates url for this route, returns ```Promise<string>```\n\n```route.setDefaultParams(params)``` - set default params for this route\n\n##### RouteParams\n\n```params.getRouteParam(name, [defaultValue=null])``` - get route param value (for example ```id``` in route ```\"/news/{id:int}/\"```)\n\n```params.getQueryParam(name, [defaultValue=null])``` - get query string param with given *name* (last one if many are present), returns ```string```\n\n```params.getQueryParamValues(name)``` - get all values for query string param with given *name*, returns ```string[]```\n\n","maintainers":[{"name":"nyakto","email":"vampire@realtymag.ru"}],"time":{"modified":"2022-06-12T14:07:05.370Z","created":"2014-06-22T17:32:38.624Z","1.0.3":"2014-06-22T17:32:38.624Z","1.0.4":"2014-06-22T18:08:46.805Z","1.1.0":"2014-06-23T00:42:38.091Z","1.1.1":"2014-06-23T01:21:55.100Z","1.2.0":"2014-08-25T09:46:36.878Z","1.2.1":"2014-09-01T10:24:05.579Z","1.2.2":"2014-09-03T19:10:59.792Z","1.2.3":"2014-09-11T09:17:42.318Z","1.2.4":"2014-09-12T20:08:54.343Z","1.2.5":"2014-09-17T09:48:01.341Z","1.3.0":"2014-12-11T11:16:38.394Z","1.3.1":"2019-01-15T10:14:14.907Z"},"homepage":"https://github.com/nyakto/2way-router#readme","keywords":["router","two-way","async","promises"],"repository":{"type":"git","url":"git://github.com/nyakto/2way-router.git"},"author":{"name":"Stanislav Yashenkov","email":"vampire@realtymag.ru"},"bugs":{"url":"https://github.com/nyakto/2way-router/issues"},"license":"MIT","readmeFilename":"README.md","users":{"nyakto":true,"shadowolf":true}}