egg-beehive icon indicating copy to clipboard operation
egg-beehive copied to clipboard

你好,请教个问题,没搞明白 contract 和ctx.rule,如何关联起来的

Open muyichuanqi opened this issue 3 years ago • 3 comments

我看你的代码,没搞明白 contract 和ctx.rule,如何关联起来的,还有contract 文件夹的文件是自动生成的吗?

muyichuanqi avatar Nov 04 '21 06:11 muyichuanqi

egg-swagger-doc 插件提供的。

因为contract的定义和validate-rule的定义具有极大的相似性,所以目前的版本中定义contract的同时会简单的生成相应的validate-rule.具体的使用'ctx.rule.'加Model名称直接引入。

上面的model,在做验证的时候就可以使用如下的方式(需使用egg-validate)

ctx.validate(ctx.rule.createResource, ctx.request.body);

contract 文件夹的文件不是自动生成,是供egg-swagger-doc和egg-validate使用的。

Imfdj avatar Nov 08 '21 10:11 Imfdj

@Imfdj 请问 package.json 中 scripts 脚本中的 generator-entity 命令主要解决什么问题

qiqingfu avatar Mar 25 '22 16:03 qiqingfu

@qiqingfu 是用来快速生成CRUD的。readme中,“如何快速CRUD”部分有使用说明。 执行npm run generator-entity自动生成一整套文件,包括Swagger、数据校验validate、Sequelize需要的model、controller、service、router。并自动创建数据库表,包括每个字段的类型、长度、是否能为空、默认值、注释、索引、甚至是外键都能搞定。因为加了权限控制,所以还要到前端的资源管理中添加一下新增的资源,并在角色中点选分配一下,就完成了一张表的CRUD了,包括新增、修改、详情、批量删除、分页列表。

Imfdj avatar Mar 29 '22 11:03 Imfdj