请教egg.js怎么让framework加载model、controller,或者类似framework继承一样做app继承
发布于 2 个月前 作者 dxwts 750 次浏览 来自 问答

请教各位,我刚刚用egg搭建应用,涉及针对客户做少量的定制,所以核心模块都一样,现在我想把共用的模块做成类似framework一样统一迭代,然后基于这个搭建客户的应用,因为像用户管理、内容管理这些模块所有客户都是一样的,所以用framework继承的方式我不知道怎么处理这些共用模块 QQ截图20190311194328.png

7 回复

把这些通用模块封装成 egg 插件就可以了~ 同时 app.loader 功能可以实现你的需求,统一这些之后你可以做成 egg 的上层框架提供出去。

@okoala 谢谢您的回答,看了egg的文档说插件和framework不会加载controller、router,我使用了sequelize,在framework层定义的model也是不加载的,按文档上loader部分的说明使用app.loader的方式加载model还没成功,loadToContext没报错但是调用时是未定义的,loadToApp一直报错,说model属性是只读的不能assign, 按您说的那我可能方向是对的,我再试试

这种的话,只能说继承框架,然后改loader加载一个额外目录了。。。model那边可能还要定制插件

建议参考loader的参数

loader 是可以在 app、plugin、framework 级别来挂载的。

建议是在插件里面做。

另,最近支持了通过配置来挂载 loader: https://github.com/eggjs/egg/issues/3480

@AnzerWall 好的,谢谢回复,我测试了可以

@atian25 谢谢回复,我测试可以了,之前不能在framework下挂model是字段名不能重复,app下默认把model挂到model,framework下换个名字挂载就能用了

@atian25 看了一下issues,非常有用,感谢

回到顶部