{"_id":"forward","_rev":"17-832bd9a8e8453caf258997c6b59dbd9f","name":"forward","description":"Forward request to a special path","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.1":{"name":"forward","version":"0.0.1","description":"Forward request to a special path","main":"index.js","directories":{"doc":"doc","test":"test"},"dependencies":{"mime":">=1.2.4","connect":"~1.8.7"},"devDependencies":{"should":"*","mocha":"*","dox":"*"},"scripts":{"test":"mocha"},"keywords":["forward"],"author":{"name":"Jackson Tian"},"license":"MIT","_id":"forward@0.0.1","dist":{"shasum":"949b0daa58d8be0b5a29c1d357d02ed5f6664f75","tarball":"https://registry.npmjs.org/forward/-/forward-0.0.1.tgz","integrity":"sha512-kDAuwUdQ1S8zwKkzgVmjkk07D/02dfNQsFUyc/LjOsDE7x2qdRJcmgk+pcNlvLUFyN4Zw0KU85Xa5N0qoyBRQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGUJzBqhcGaBGNUpTEp1gU/jbRaIoE1GzudKvefRL5bAAiA7vMSmkbdsqlocP/z8HQFIgrfrW7LdNCHo7N352Qmw0Q=="}]},"maintainers":[{"name":"jacksontian","email":"shyvo1987@gmail.com"}]},"0.0.2":{"name":"forward","version":"0.0.2","description":"Forward request to a special path","main":"index.js","directories":{"doc":"doc","test":"test"},"dependencies":{"mime":">=1.2.4","connect":">=1.8.7"},"devDependencies":{"should":"*","mocha":"*","supertest":"*","dox":"*"},"scripts":{"test":"mocha"},"keywords":["forward"],"author":{"name":"Jackson Tian"},"license":"MIT","repository":{"type":"git","url":"git://github.com/JacksonTian/forward.git"},"_id":"forward@0.0.2","dist":{"shasum":"8214f9abd5509f70b6e879dd9b0607bd3f14f68f","tarball":"https://registry.npmjs.org/forward/-/forward-0.0.2.tgz","integrity":"sha512-7giOmd36Dz4Y1oISWcIFaXeZTjim/F9bP+tewMnOvmnjRrgZVcTHEj4RuyhFS8qTPkXhA/POeUn04Yc6vg8MVw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdWiJjPNn99H4ddouMWFWz4KxIP2bdnqoiC0OB9tG12AIhANrgGhdpYCyEe0ZOBG1gUOOLOnrxnB927kxzyrEibxaO"}]},"_npmVersion":"1.1.65","_npmUser":{"name":"jacksontian","email":"shyvo1987@gmail.com"},"maintainers":[{"name":"jacksontian","email":"shyvo1987@gmail.com"}]},"0.0.3":{"name":"forward","version":"0.0.3","description":"Forward request to a special path","main":"index.js","directories":{"test":"test"},"dependencies":{"mime":">=1.2.4","connect":">=1.8.7"},"devDependencies":{"should":"*","mocha":"*","supertest":"*","blanket":"*","travis-cov":"*","coveralls":"*","mocha-lcov-reporter":"*","pedding":"*","dox":"*"},"scripts":{"test":"make test-all","blanket":{"pattern":"forward/lib"},"travis-cov":{"threshold":100}},"keywords":["forward"],"author":{"name":"Jackson Tian"},"license":"MIT","repository":{"type":"git","url":"git://github.com/JacksonTian/forward.git"},"bugs":{"url":"https://github.com/JacksonTian/forward/issues"},"_id":"forward@0.0.3","dist":{"shasum":"afdf9edf5ab5fa101d0a95811a2c64b0f91e9930","tarball":"https://registry.npmjs.org/forward/-/forward-0.0.3.tgz","integrity":"sha512-cAZ+o+xbn83IrmKYqvjd2s2D0bGulESCHuSh5FBNZ3r02IYqF45B7z7D+9iEoNf48BLXXXQb3i8/85tiJ7a6ew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGVRmh+vpKuf3avTqUZvYZc8io+6YA54IgqcPP5IBhIFAiANH9LjM5lqzbOYCtYjb6lN776YTU5vkQdKrGRQ/SGyjQ=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"jacksontian","email":"shyvo1987@gmail.com"},"maintainers":[{"name":"jacksontian","email":"shyvo1987@gmail.com"}]},"0.0.4":{"name":"forward","version":"0.0.4","description":"Forward request to a special path","main":"index.js","directories":{"test":"test"},"dependencies":{"mime":">=1.2.4","connect":">=1.8.7"},"devDependencies":{"should":"*","mocha":"*","supertest":"*","blanket":"*","travis-cov":"*","coveralls":"*","mocha-lcov-reporter":"*","pedding":"*","dox":"*"},"scripts":{"test":"make test-all","blanket":{"pattern":"forward/lib"},"travis-cov":{"threshold":100}},"keywords":["forward"],"author":{"name":"Jackson Tian"},"license":"MIT","repository":{"type":"git","url":"git://github.com/JacksonTian/forward.git"},"bugs":{"url":"https://github.com/JacksonTian/forward/issues"},"_id":"forward@0.0.4","dist":{"shasum":"4c3ac5aae88442a2931a3338297e1aaf0a8d6c7d","tarball":"https://registry.npmjs.org/forward/-/forward-0.0.4.tgz","integrity":"sha512-E1+ndbVjZ89vn4DG/+Qcn4pjkUB388PPBQGAH4dHaPGv8qah5WRCMcm3CDrK4CrDN7mj/1LziZM/yDb7ZM2gFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICGiA8Mp4sthm7yABX8UA+2KAqeOvgYpslrAA8IXUK9HAiBQbOw7zrdITbW+CaIy4e/MUI2CnVyTdTGdEIk/OoQlDw=="}]},"_from":".","_npmVersion":"1.2.32","_npmUser":{"name":"jacksontian","email":"shyvo1987@gmail.com"},"maintainers":[{"name":"jacksontian","email":"shyvo1987@gmail.com"}]},"0.0.5":{"name":"forward","version":"0.0.5","description":"Forward request to a special path","main":"index.js","directories":{"test":"test"},"dependencies":{"mime":">=1.2.4"},"devDependencies":{"connect":">=1.8.7","should":"*","mocha":"*","supertest":"*","blanket":"*","travis-cov":"*","coveralls":"*","mocha-lcov-reporter":"*"},"scripts":{"test":"make test-all"},"config":{"blanket":{"pattern":"forward/lib","data-cover-flags":{"debug":false}},"travis-cov":{"threshold":100}},"keywords":["forward"],"author":{"name":"Jackson Tian"},"license":"MIT","repository":{"type":"git","url":"git://github.com/JacksonTian/forward.git"},"bugs":{"url":"https://github.com/JacksonTian/forward/issues"},"homepage":"https://github.com/JacksonTian/forward","_id":"forward@0.0.5","dist":{"shasum":"2832add583de3f99ebf60c868d4a2d7d5a5a20cf","tarball":"https://registry.npmjs.org/forward/-/forward-0.0.5.tgz","integrity":"sha512-vwmd78+eprUHrfCgtvB4xIdtm3/LX+k3xcs5+lV41cfYlqtVKo3UuGLbR6g+lNFkIIbkp6HwUECBo/cwy2SGzg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuP0cI44Ym4hUDCm7G+AAWMXr5QM3K/emChb5P4GspWAIgCeFf1GoAqQQXkc1WWzI428TluLmVd6+SzaRXBZGIpbg="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"jacksontian","email":"shyvo1987@gmail.com"},"maintainers":[{"name":"jacksontian","email":"shyvo1987@gmail.com"}]}},"readme":"Forward [![Build Status](https://secure.travis-ci.org/JacksonTian/forward.png?branch=master)](http://travis-ci.org/JacksonTian/forward) [![Coverage Status](https://coveralls.io/repos/JacksonTian/forward/badge.png)](https://coveralls.io/r/JacksonTian/forward)\n====\n\n# 起源\n为了提高静态文件的性能，我们的站点做了为静态文件的路由添加前缀的工作。具体测试数据和原委请参加苏千的这篇文章：[给 connect 的 static 模块加上url路径前缀](http://cnodejs.org/topic/4fce14e0e5e72c25180b51d1)。其收效是明显的。\n\n但是我们无法避免掉一些过去形成的习惯和约定，比如浏览器会访问`/favicon.ico`来读取网站默认图标，网络蜘蛛来读取`/robots.txt`来查询搜索引擎约定，等等。此类事情我们无法响应`301`转向使得每个客户端都能遵循转向获取实际的文件。所以我们需要`forward`的功能。\n\n在Java的Servlet中，`redirect`是实际的`301`转向，`forward`是服务器端业务逻辑的转向。这里模块的名字选择采用`forward`来表示其意义。\n\n# 用法\n## 安装\n```\nnpm install forward\n```\n\n## 调用\n`forward`是一个`connect`中间件。调用时如下即可：\n\n```\nvar app = connect();\napp.use('/favicon.ico', forward(__dirname + '/assets/favicon.ico'));\napp.use('/robots.txt', forward(__dirname + '/assets/robots.txt', {charset: 'utf-8'}));\n```\n\n# 许可证\n在最为宽松的MIT许可下开源\n\n```\nCopyright (c) 2012 Jackson Tian\nhttp://weibo.com/shyvo\n\nThe MIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```","maintainers":[{"name":"jacksontian","email":"shyvo1987@gmail.com"}],"time":{"modified":"2022-06-18T03:17:02.195Z","created":"2012-08-21T17:34:43.072Z","0.0.1":"2012-08-21T17:34:46.927Z","0.0.2":"2012-11-22T16:55:17.035Z","0.0.3":"2013-06-28T09:36:47.127Z","0.0.4":"2013-06-28T10:32:19.782Z","0.0.5":"2014-04-04T09:15:23.875Z"},"author":{"name":"Jackson Tian"},"repository":{"type":"git","url":"git://github.com/JacksonTian/forward.git"},"homepage":"https://github.com/JacksonTian/forward","keywords":["forward"],"bugs":{"url":"https://github.com/JacksonTian/forward/issues"},"license":"MIT","readmeFilename":"README.md"}