下周任务是写验证字段合法性的插件,现在先看看大佬的写法,记录一下流水账。
大佬的插件:andreciornavei/strapi-plugin-validator: A strapi plugin to tunning strapi validations (github.com)
这个插件使用的“引擎”是 Adonis.js
整个插件都是为了方便操作,从用户建立的配置文件里读取字段和规则,经过整理,整理成该“引擎”所对应的格式,最终接收验证结果,选择 next() 还是 ctx.badRequest()
阅读源码之前先撸袖子,再掏出思维导图,打上断点,F5走起!
我用思维导图记录该插件的运行过程(流水账)
阅读strapi-validator源码 | ProcessOn免费在线作图,在线流程图,在线思维导图
没有很详细,一些对配置文件low level的格式判断(正常人都不会这么写)没列出来。
吐槽:
Adonis.js 的rule-parser 会把我写的下划线 rule 名字给我驼峰化了,导致我配合 strapi-plugin-validator 插件写规则报找不到规则的错误!
我写的:array_has_object_key,他去找 arrayHasObjectKey,那肯定找不着嘛。。