eggjs在route.js里动态加载从数据库里拿的route数据,这样写有问题吗?
发布于 7 年前 作者 kalebwww 4534 次浏览 来自 问答

改成了async,能够实现需求,但是不知道这样做有没有什么其他问题?

6 回复

会有问题,egg 启动成功后,已经对外服务,然后这个 mysql 才执行完,在这之前用户访问就会 404 了。

你这场景可以把这段逻辑移到 app.js 的 app.beforeStart 里面去加载数据和注册路由。

@atian25 谢谢,顺利实现需求~

@kalebwww 如果在服务已经开启的情况下,再修改动态路由,一楼的方法其实也不能跑通

@wangchaoduo 必然,koa-router 不支持动态的,这种场景,自己 match 一个 * 在里面根据逻辑自己实现派发吧

@atian25 这种场景,我是用中间件直接match request的path处理了

楼主 能分享一下动态路由的处理方案吗?能拿到数据库的路由配置数据,可是controller和router又怎么动态生成呢

回到顶部