昨天pm发现一个后台页面数据没加载出来,我一看就知道肯定是某个接口没有加对应分组的权限,很自信的把该分组的权限加到了对应接口的auth里面,发布到灰度 ,然后愉快的下班了。
到了第二天pm说后台页面数据还是没加载出来,我就有点懵了,在我原来的分组把我删了,加到pm对应的分组,灰度环境一跑,还真没有,还是提示没有权限,我一开始怀疑发布平台是不是有缓存,还有域名是不是跑到其他的容器上了,于是将平台开发,应用运维一帮人都拉了进来,平台的人将对应的资源下下来一看代码是最新的,运维也说是打到了灰度环境,都没有问题。
我后来一想那个是不是根本就没有走我定义的路由,而是走到其他路由上去了,仔细看了一下发现了端倪。
router.js定义了两条类似如下的链接
/api/proxy/user/:id
/api/proxy/user/configs
这个时候当我 访问/api/proxy/user/configs 这个接口的时候,其实是跑到上面一条路由了,configs被认作:id,这种情况其实/api/proxy/user/configs 永远都走不到,而我恰恰是把权限加到了下面的路由里,当然永远都走不到。
至此,我就把这两条路由的位置互相换了一下,确定路径的路由永远在上面,这样就不会发生路由错位了。