什么是 bookshelf-paranoia
bookshelf-paranoia 是一个基于 bookshelf.js 的插件,可以对数据表中的数据进行删除操作,逻辑上的删除会将目标数据的 del_flg 设为 1,将数据标记为“已删除”,而不是实际的物理删除。
为什么要使用 bookshelf-paranoia
在开发的过程中,删除数据有时候并不是真正想要删除这条记录,我们往往只是想将这些数据进行隐藏,而并不希望它们被真正的删除,毕竟删除操作是不可撤回的。因此,采用逻辑删除的方式可以有效的避免这种情况的出现,同时也可以使数据的版本控制更加可靠和安全。
从用户的角度来看,采用逻辑删除不仅可以提供更好的数据保护和安全性,还可以避免不必要的误操作,让用户对数据更加放心。
如何使用 bookshelf-paranoia
安装
在使用 bookshelf-paranoia 前,我们需要先安装本插件和依赖
npm install bookshelf-paranoia
配置
在使用 bookshelf-paranoia 之前,需要将插件注册到 bookshelf.js 中。这可以通过在初始化中进行配置来实现:
-- -------------------- ---- ------- -- ---- ---- ------- ------------------ -- --- ---- - ----------------- ------- -------- ----------- --------------------------------- --------- ----------- ----- ----------- --------- ----------- -------- ------ - --- --- --------- - --------------------------- -- -- ------------------ ----- -------- - ------------------------------ -- -- ---------------------------
使用
在进行数据操作的时候,我们可以通过 Model.destroy() 函数来进行逻辑删除,同时在 Model.fetch() 函数中删除已删除的数据。
-- -------------------- ---- ------- ------------------------- -- ------ --- ---- - ------------------------ ---------- -------- -------------- ---- --- ------------ --- ----- -- ---------- --------------------- - ------------------ - --- ---- ---------- ---
我们可以通过定义自己的模型扩展 Model 类来自定义您的表的行为:
-- -------------------- ---- ------- -------------- - ---- - ------------------------ ---------- -------- --------- ----- ------------ --------------- -------------- ----- ------ --------------- - ---------------- - ---------------- --- ---- - ---- - ------------------------------------------- ----------- --------------------------- - --------------------------- --- ---- - ---- - ------------------------------------------------------ ----------- ------------------------- - ------------------------- --- ---- - ---- - ---------------------------------------------------- ----------- ------ ------ - ---
softDeletes 用于定义将要被删除的键值,使其不删除。例如,在上面的示例中,将 deleted_at 定义为被删除的键值,逻辑删除时会保留 deleted_at 值并将其设置为记录逻辑删除时间的日期时间。
结语
上述是 npm 包 bookshelf-paranoia 的使用教程,相信这个插件可以在使用中更加便捷地实现逻辑删除,避免数据误操作。我们相信通过本篇文章的学习,您一定能够更好地使用这个插件,在项目中更加高效地实现逻辑删除,提升数据的安全性和稳定性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/197617