【阿里低代码引擎实战】— 自定义插件-多页面管理(二)
内容提要
本文介绍了如何使用阿里低代码引擎创建多页面办理功能,结合egg.js与MySQL数据库,实现页面schema的查询与保存。详细描述了数据库表的创建、egg.js项目的配置、控制器与服务层的逻辑实现,以及在demo中测试保存功能的过程,最终实现不同页面的数据存储与展示。
延伸解读
数据库表设计的关键点
文章使用page_type作为主键,直接对应页面类型(如home和user)。这种设计简化了查询和更新操作,因为主键唯一,便于通过page_type快速定位记录。但需注意,如果未来页面类型增多,主键的扩展性可能受限,且主键值需与前端路由严格匹配,否则会导致数据错乱。
MySQL 8.0兼容性问题及解决
在egg.js中连接MySQL 8.0时,可能遇到ER_NOT_SUPPORTED_AUTH_MODE错误,原因是MySQL 8.0默认使用新的密码认证插件,而旧客户端不兼容。文章提供的解决方案是修改用户认证方式为mysql_native_password,并刷新权限。这虽能快速解决问题,但降低了安全性,生产环境建议升级客户端或使用更安全的认证方式。
前后端数据交互的细节
前端保存schema时,将整个schema对象序列化为JSON字符串存入数据库;查询时再解析并提取componentsTree[0]用于渲染。这种处理方式要求前后端对schema结构有统一约定,且存储的JSON字符串可能较大,需考虑数据库字段类型和性能。此外,接口未提及错误处理和数据验证,实际应用中需补充。
多页面管理的实现思路
通过URL参数page区分页面类型,前端根据参数决定加载和保存的page_type,后端据此操作数据库。这种基于路由参数的方式简单直接,但页面类型与数字的映射(home对应1,user对应2)是硬编码的,新增页面类型需同时修改前后端代码,维护成本较高。可考虑将映射关系配置化。
Q&A
如何使用阿里低代码引擎创建多页面办理功能?
可以通过结合egg.js与MySQL数据库,使用阿里低代码引擎创建多页面办理功能,具体步骤包括新建数据库表、配置egg.js项目以及编写控制器和服务层逻辑。
在egg.js项目中如何配置MySQL?
在egg.js项目中,需要安装egg-mysql,并在plugin.js和config.default.js中添加相应的配置代码,以确保项目能够连接到MySQL数据库。
如何解决egg.js与MySQL 8.0的兼容性问题?
可以通过在MySQL中执行ALTER USER命令,将用户的认证方式改为mysql_native_password,从而解决与MySQL 8.0的兼容性问题。
如何在控制器中实现查询和保存页面schema的功能?
在控制器中,可以通过定义getSchema和saveSchema方法,分别实现查询和保存页面schema的功能,使用ctx.service调用相应的服务层逻辑。
lowcode-demo项目中如何修改保存功能?
在lowcode-demo项目中,需要将原本的保存到本地功能改为保存到数据库,并在代码中修正按钮名称和传入页面类型pageType。
如何测试查询和保存接口的功能?
可以使用postman工具测试查询和保存接口,确保页面schema能够正确存储和展示。