eggjs在route.js里动态加载从数据库里拿的route数据,这样写有问题吗?
改成了async,能够实现需求,但是不知道这样做有没有什么其他问题?
6 回复
会有问题,egg 启动成功后,已经对外服务,然后这个 mysql 才执行完,在这之前用户访问就会 404 了。
你这场景可以把这段逻辑移到 app.js 的 app.beforeStart
里面去加载数据和注册路由。
@atian25 谢谢,顺利实现需求~
@kalebwww 如果在服务已经开启的情况下,再修改动态路由,一楼的方法其实也不能跑通
@wangchaoduo 必然,koa-router 不支持动态的,这种场景,自己 match 一个 *
在里面根据逻辑自己实现派发吧
@atian25 这种场景,我是用中间件直接match request的path处理了
楼主 能分享一下动态路由的处理方案吗?能拿到数据库的路由配置数据,可是controller和router又怎么动态生成呢