什么是 bookshelf-joi
bookshelf-joi 是一个基于 bookshelf ORM 内核和 Joi 验证库封装的 npm 包。它为前端开发者提供了一种简单易用的方式来对数据库操作进行数据验证和约束。
安装和使用
安装
你可以通过 NPM 安装该包。
npm install bookshelf-joi --save
简单使用
-- -------------------- ---- ------- ----- --- - -------------- ----- --------- - -------------------------- ----- ------------ - ----------------------------------- ---- ----- ---- - --------------------------- ---------- -------- ---- - ------- ------------ ----- ------------------------ ------ -------------------------------- --------- ----------------------------------------- ------------- - -- ----- -------- - - ----- ----- ----- ------ ------------------- --------- -------- - ----- ---- - --- -------------- ------------------------ -- - ----------------- ---------------------- -------- -------------- -- - ------------------ --
API
bookshelfJoi(Model)
它返回的是一个包含 bookshelf-joi 中 Model 所有 API 的对象。
-- -------------------- ---- ------- ----- ------------ - ----------------------------------- ---- ----- ---- - --------------------------- ---------- -------- ---- - ------- ------------ ----- ------------------------ ------ -------------------------------- --------- ----------------------------------------- ------------- - --
Model.joi
该属性为对象,其中包含两个属性:
Model.joi.create
该属性包含 Joi object ,表示在进行创建数据操作时所要求的数据结构。
-- -------------------- ---- ------- ----- ---- - --------------------------- ---------- -------- ---- - ------- ------------ ----- ------------------------ ------ -------------------------------- --------- ----------------------------------------- ------------- - --
Model.joi.update
该属性与 Model.joi.create
相似,但包含在更新时所要求的数据结构。
-- -------------------- ---- ------- ----- ---- - --------------------------- ---------- -------- ---- - ------- ------------ ----- ------------------------ ------ -------------------------------- --------- ----------------------------------------- -------------- ------- ------------ ----- ------------- ------ --------------------- --------- ------------------------------ ------------- - --
Model.create(data, options)
该方法为对象方法,用于创建符合 Model.joi.create 所定义的数据结构的数据。
data
必须符合 Model.joi.create 所定义的数据结构。options
非必须,用于传入其他参数,如{ transacting: t }
。
-- -------------------- ---- ------- ----- -------- - - ----- ----- ----- ------ ------------------- --------- -------- - ----- ---- - --- -------------- ------------------------ -- - ----------------- ---------------------- -------- -------------- -- - ------------------ --
Model.update(data, options)
该方法为对象方法,用于更新符合 Model.joi.update 所定义的数据结构的数据。
data
必须符合 Model.joi.update 所定义的数据结构。options
非必须,用于传入其他参数,如{ transacting: t }
。
-- -------------------- ---- ------- ----- -------- - - --------- -------- - ----- ---- - --- ------ --- - -- -------------------------------- -- - ----------------- ---------------------- ---------- -------------- -- - ------------------ --
Model.validate(data, nodb)
该方法为对象方法,用于进行数据验证。
data
必须为对象。nodb
非必须,类型为布尔值。如果为true
,则不执行数据库操作。
-- -------------------- ---- ------- ----- -------- - - ----- ----- ----- ------ -------------- - ----------------------- -------- -- - ----------------- -- -------- -- ------------ -- - ------------------- -- ---------- ------------ --
注意:当执行数据库操作时,不需调用该函数, bookshelf-joi 在进行数据库操作前自动验证。
结论
通过以上介绍,我们发现 bookshelf-joi 极大地方便了我们的数据操作,使得我们可以在不牺牲代码质量和运行效率的情况下,减少数据操作所带来的错误和漏洞。使用 bookshelf-joi 可以提高代码可读性,降低代码维护成本,是一个非常值得使用的 npm 包。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600568b981e8991b448e485a