eggjs怎么实现任何字段模型的方法?
我最近玩了strapi框架,认识到了这个结构最好的地方是,一,任何字段模型,二,可扩展插件。其中,这个任何字段模型的方法有点复杂,我还没摸清好几十天,估计是刚接触到后端技术还没有知道那么多。
参考 strapi 任何字段模型
即使选择好了几个类型,这些类型会保存到数据库新表,比如建立article表,article的字段会有对应类型,这样结构挺好灵活,不用每次手动增加mvc之类的代码,直接存好数据库。
比如创建一张文章表,文章表还没有加入字段模型,那么在后台里面选择字符串、日期、数字来做成标题,作者。。。之类,然后就会建立类似MVC模式的结构,自然会保存到那张文章表。
这个结构值得我参考,不过我不知道这个方法怎么实现?
我目前做的是采用eggjs这个框架,那么在eggjs里面怎么实现这个字段模型方法?
最后一句话:我希望您现在就是我的好老师!谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
1.1 通过【图形化的界面】添加【数据表中的属性列】。产生的效果就是【MongoDB中出现对应的数据表(table_article)】,同时框架文件夹中生成了【对应的数据模型(article.model)】
1.2 纠正你的说法,应该是strapi这个框架【整体采用了MVC设计范例】。【1.1】并不是生成了MVC的结构,只是生成了Model
2.1 虽然给你的感觉是通过【图形化的界面】生成。但是始终离不开【命令行】的操作。在strapi的文档中有专门介绍【CLI】的板块,可以参考并搜索框架的源码,始终是需要自己去探索的,别人都只是帮助你解释概念而已
2.2 strapi并不是第一个实现【1.1】方式的框架,Laravel同样非常典型。如果你觉得strapi的英文文档难以理解,可以去看一下Laravel的中文文档。和strapi的【CLI】相同的,在Laravel中我们使用Artisan指令
2.3 strapi使用的是MongoDB,你同时可能还需要看一下MongoDB文档中的命令行指令
谢邀,简单说两句。目前 Egg.js 里面 Model 层的编写比较混乱,没有一个较为统一的方案,各自 ORM 插件也各自为战,限制较多,多 ORM 共存时也存在较大的兼容性问题。具体可以参考:RFC-1775 重定义 Model 层,我个人目前采用的是 egg-sequelize,个人觉得还是比较好用,sequelize 文档也比较全。
推荐用 egg-sequelize 文档也很全
模型
控制器
这个其实很简单啊。需求类似于一个文章可以添加10中field中的任意几种,支持多个。
那你创建一个文章表,然后再创建10张field表,每张表都跟文章表关联即可。
后续扩展也很容易,添加一个 field 类型只要新增一张表即可。