npm 包 bookshelf-paranoia 使用教程

什么是 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


猜你喜欢

  • npm 包 diskette 使用教程

    什么是 diskette? diskette 是一个轻量级的本地存储 npm 包,允许在前端中使用一种简单的方式处理存储数据。它使用 IndexedDB 实现数据的持久化,并且对用户的隐私进行了保护。

    5 年前
  • npm 包 folder-zip-sync 使用教程

    什么是 folder-zip-sync folder-zip-sync 是一个能够将文件夹压缩为 zip 文件的 npm 包。与同类的其他 npm 包不同,folder-zip-sync 的操作是同步...

    5 年前
  • @artifacter/template-engine 使用教程

    背景 @artifacter/template-engine 是一种基于 JavaScript 的模板引擎,可用于前端和后端的开发。它简单易用,提供了许多高级功能,如条件、循环和过滤器等。

    5 年前
  • npm 包 @artifacter/common 使用教程

    简介 在前端的开发过程中,经常会用到很多不同的第三方工具和库来帮助我们完成任务,npm 就是其中一个非常重要的工具。@artifacter/common 是一个非常好的 npm 包,提供了很多常用的工...

    5 年前
  • npm 包 rxjs-addons 使用教程

    什么是 rxjs-addons? rxjs-addons 是一个用于增强 RxJS 功能的 npm 包。它包含了许多有用的操作符、工具函数和扩展,让 RxJS 更加易于使用和功能更加强大。

    5 年前
  • npm 包 ink-text-input 使用教程

    随着前端技术的发展,npm 成为了前端开发中必不可少的工具之一。而在 npm 上,有很多优秀的包可以帮助我们更高效地进行开发。其中,ink-text-input 就是一个十分实用的 npm 包。

    5 年前
  • npm 包 ink-spinner 使用教程

    前言 前端开发中,我们经常需要使用到一些插件或者 npm 包来实现某些功能。在这其中,ink-spinner 就是一款非常实用易用的 npm 包,能够帮助我们实现多种不同样式的 Loading 动画,...

    5 年前
  • npm 包 ink-link 使用教程

    什么是 ink-link? ink-link 是一个基于 React 构建的命令行终端组件,它提供了快捷创建可点击链接的功能。ink-link 可以根据你提供的 URL 和显示内容,快速创建一个可点击...

    5 年前
  • npm 包 ink-box 使用教程

    介绍 ink-box 是一个基于 React 的命令行工具,可以在控制台中使用矩形包装文本和组件。它提供了多种自定义选项,例如边框样式,填充,和文本定位。这个工具非常适合于构建 CLI 工具和命令行游...

    5 年前
  • npm 包 @netgum/utils 使用教程

    在前端开发中使用一些工具类库可以帮助我们提升开发效率和解决一些常见问题。今天我们要介绍的是一个非常实用的工具类库 —— @netgum/utils。 什么是 @netgum/utils? @netgu...

    5 年前
  • npm 包 @netgum/types 使用教程

    在前端开发中,我们经常需要用到特定数据类型的变量,比如颜色、角度、距离等等。为了方便开发,我们可以使用 npm 包 @netgum/types 来帮助我们处理这些数据类型。

    5 年前
  • npm 包 @appt/core 使用教程

    简介 @appt/core 是一款前端 JavaScript 框架,旨在更快、更容易地构建 Web 应用程序。 它具有简单、灵活和可扩展的特点,使得它成为开发者的首选框架。

    5 年前
  • npm 包 @agilearchitects/logmodule 使用教程

    前言 对于前端开发人员来说,日志记录是不可或缺的一部分。在开发过程中,我们需要能够记录所有重要的操作和错误信息,以便于后期的追踪和修复。虽然大多数浏览器都提供了一些基本的日志记录功能,但在实际使用过程...

    5 年前
  • npm 包 @aex/core 使用教程

    简介 @aex/core 是一个基于 Vue.js 的前端组件库,它提供了丰富的 UI 组件、工具类和插件,可以大大提高前端开发效率和代码质量。这篇文章将介绍如何使用 npm 安装和借助 @aex/c...

    5 年前
  • npm 包 apollo-server-hapi 使用教程

    在现代的互联网开发领域中,JavaScript 已经成为了其中一种不可或缺的语言。而前端开发作为其中的一部分,也是 JavaScript 的天下。在前端开发中,如果要实现数据的获取和传输,一般都是通过...

    5 年前
  • npm 包 hapi-decorators 使用教程

    简介 hapi-decorators 是一个基于 hapi 框架的应用程序解决方案,它使用 TypeScript 和装饰器的语法来提供了编写 hapi 应用程序的简化方式。

    5 年前
  • npm 包 @types/vision 使用教程

    介绍 在前端开发中,许多基于 Node.js 的应用需要使用服务器端的图像处理技术。而使用 Node.js 进行服务器端的图像处理,需要使用一个非常好用且强大的框架——vision。

    5 年前
  • npm 包 @types/multiparty 使用教程

    前言 在前端开发中,我们经常需要处理文件上传的逻辑,而 Multiparty 是一个轻量级无依赖的 Node.js 包,提供了方便易用的文件上传方法。但是在 TypeScript 项目中使用 Mult...

    5 年前
  • npm 包 @types/inert 使用教程

    Node.js 是一个优秀的后端开发工具,它的内置模块和第三方模块都很强大。其中静态文件服务器 Inert 就是一个非常实用的模块。如果你使用 TypeScript 来进行 Node.js 开发,那么...

    5 年前
  • npm包 @types/hapi-decorators使用教程

    在现代的web应用程序中,使用TypeScript类是一个很不错的选择。@hapi/Decorators是Hapi.js的一个插件,他允许使用装饰器注释路由处理函数和验证逻辑,使代码更加清晰。

    5 年前

相关推荐

    暂无文章