RESTful 风格的 URL 定义中,路由名重复如何解决?
遇到问题:在中间件获取路由名时,由于路由同名,无法判断是具体哪个方法执行。
文档地址:https://eggjs.org/zh-cn/basics/router.html
RESTful 风格的 URL 定义中,路由名重复如何解决?
遇到问题:在中间件获取路由名时,由于路由同名,无法判断是具体哪个方法执行。
文档地址:https://eggjs.org/zh-cn/basics/router.html
ctx.method 不一样。
laravel的resource路由名是可以做到直接区分,能否参考一下
确实可以改善一下。 @xiaopenggithub 可以来贡献一下吗?
改下这里就好了 https://github.com/eggjs/egg-router/blob/f0b29ec34df32ba9d872f6318f4febd2b4ef9359/lib/egg_router.js#L151
@xiaopenggithub laravel 是怎么样的?
https://github.com/eggjs/egg-router/blob/f0b29ec34df32ba9d872f6318f4febd2b4ef9359/lib/egg_router.js#L12
这里是有 namePrefix 的,不过那几个没设置,这里如果改的话,就 break 了吧,@fengmk2
改下这里就好了 https://github.com/eggjs/egg-router/blob/f0b29ec34df32ba9d872f6318f4febd2b4ef9359/lib/egg_router.js#L151
@xiaopenggithub ~laravel 是怎么样的?~
是这样的,laravel的资源路由是带上方法名,能够独立区分(以前是做php,新入手egg,感觉也很强大)
嗯,之前是没有这个的,我这边考虑下是不是提供个 API 或配置,直接改的话会 break change,因为有可能有人这么判断了
//config.default.js
auth: {
ignore: [
ctx => ctx.urlMatch('post', '/v1/login'),
ctx => ctx.urlMatch('get', '/v1/gifshow/qrcode'),
ctx => ctx.urlMatch('post', '/v1/session'),
ctx => ctx.urlMatch('post', '/v1/admin'),
ctx => ctx.urlMatch('put', '/v1/order'),
ctx => ctx.urlMatch('get', '/v1/courierCompany'),
],
enable: true,
},
我暂时是这么实现的,urlMatch中去做一下方法和路由的匹配,返回true或者false,后面想把这部分抽出来,写起来不这么麻烦