-
本人初学javascript,想试试自己写两个简单的路由练练手。
很详细!于是自己写了一个简单的路由,但因为只是自己测试使用,所以想放在protected_router.js中,这样不受docker更新的影响。但是找来找去,没找到关于protected_router的说明文档。
谢谢! |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 3 replies
-
// 修改 protected_router.js
// 这里我把身份认证部分删掉了
const Router = require('@koa/router');
const router = new Router();
// 实际路由为 /protected/path/to/site
router.get('/path/to/site', require('./private/site'));
module.exports = router; 写法参照 https://github.com/DIYgod/RSSHub/blob/master/lib/router.js 就好 部署时加上两行挂载命令 volumes:
- {修改后的 protected_router.js}:/app/lib/protected_router.js
- {私有路由放置文件夹}:/app/lib/private |
Beta Was this translation helpful? Give feedback.
-
为什么我尝试了下 |
Beta Was this translation helpful? Give feedback.
-
文件映射以 Docker Compose 部署为例,使用私有路由需要映射路由空间和注册文件到容器中 volumes:
- {/path/of/your/private}:/app/lib/private
- {/path/of/your/protected-router.js}:/app/lib/protected-router.js 如果是在本地进行调试,则需要在 创建规则因为私有路由不涉及到对外的分享,所以路由空间下不用创建 所以,私有路由必须要创建的只有 RSS 源规则文件,这个规则的要求和公开路由的创建规则一致,详情请查看 制作自己的 RssHub 路由。 注册路由通过修改 注册私有路由的语法和公开路由一致,详情请查看 router.js 配置说明 这里注意一下,注册私有路由的时候,需要在路由路径前加上 const Router = require('@koa/router');
const router = new Router();
// NYTimes
router.get('/nytimes/:channel?', require('./private/nytimes/channel'));
module.exports = router; 为了保护私有路由,可以在 const Router = require('@koa/router');
const router = new Router();
const auth = require('koa-basic-auth');
// 修改为自己的用户名和密码
const config = { name: 'rss', pass: 'hub' };
router.use('/(.*)', auth(config));
// NYTimes
router.get('/nytimes/:channel?', require('./private/nytimes/channel'));
module.exports = router; 访问路由访问私有路由的方式和公开路由基本一致,但需要在路径中的路由空间前添加 https://rsshub.example.com/protected/nytimes 如果添加了授权认证,则需要在链接中添加用户名和密码。 https://rss:[email protected]/protected/nytimes 在浏览器中测试需要授权认证的私有路由时,经常会遇到浏览器缓存的问题导致失败,推荐使用在终端中使用 curl -u rss:hub https://rsshub.example.com/protected/nytimes |
Beta Was this translation helpful? Give feedback.
-
这个方法已经失效了吧,现在找不到protected_router.js了 |
Beta Was this translation helpful? Give feedback.
写法参照 https://github.com/DIYgod/RSSHub/blob/master/lib/router.js 就好
部署时加上两行挂载命令