在开发应用程序时,软删除的概念变得越来越流行。软删除的好处是,将不必要的记录标记为已删除,同时保留数据以备将来参考。LoopBack是一个基于Node.js的开源框架,可用于构建RESTful API和Web应用程序。在此教程中,我们将介绍如何使用 loopback-softdelete-mixin4
npm包来实现软删除功能。
安装LoopBack和loopback-softdelete-mixin4
在开始本教程之前,请确保已安装Node.js。如果没有,请从官方网站 https://nodejs.org/ 下载并安装Node.js。安装完成后,请按照以下步骤启动LoopBack:
- 打开终端或命令提示符
- 输入以下命令进行全局安装LoopBack
npm install -g loopback-cli
- 在终端或命令提示符中,创建新的LoopBack应用程序
lb app MyApp
- 进入应用程序目录并安装loopback-softdelete-mixin4
cd MyApp && npm install --save loopback-softdelete-mixin4
此时,您已经安装了LoopBack和loopback-softdelete-mixin4
。
启用和配置loopback-softdelete-mixin4
在安装了 loopback-softdelete-mixin4
后,您需要在LoopBack模型中启用和配置该软件包。在此示例中,我们将使用一个名为 Employee
的模型。
- 打开模型定义文件(
common/models/employee.json
),并添加以下代码:
"mixins": { "SoftDeleteMixin": true }
通过将 SoftDeleteMixin
设置为 true
,我们启用了 loopback-softdelete-mixin4
。
- 确定要作为删除标志的属性。在此示例中,我们将使用
deletedAt
属性。
-- -------------------- ---- ------- ------------- - ------------ - ------- ------- ----------- ------ -------- - ------------- ------------- ----------- ------------ ------------- ----- ---------------- ----- ------------ ----- ----------- --- - -- -- ----- ---------- -
设置 deletedAt
属性的元数据以在属性被添加和数据库被迁移时使用。
- 创建软删除混入文件(
common/mixins/soft-delete-mixin.js
)
-- -------------------- ---- ------- -------------- - -------- ------- -------- - --------------------------------- - ----- ---- --- --------------------- -------- -------- --------- ----- - ------------- - ------------- -- --- ----------------------- - ----- ----------------- --- ---------------- -- - ---------- --- ------ -- -------- ----- - -- ----- - ------ ---------- - ----------------------- - - ---- ---- -- ------- --- --- --
在本混合文件中,我们定义了 deletedAt
属性,并在模型上执行了 before delete
观察,在删除记录时添加了软删除功能。
- 将混入文件与模型关联
"mixins": { "SoftDeleteMixin": true, "SoftDelete": {} }
对于 SoftDeleteMixin
类型的混入,我们需要将 SoftDelete
作为一个空对象配置。
现在,我们已经完成了将 loopback-softdelete-mixin4
集成到我们的 Model
中。接下来,我们将测试软删除功能。
测试软删除功能
在我们继续实现员工 Model
的软删除功能之前,让我们确保我们的代码没有错误。运行以下命令来启动应用程序。
node .
使用Postman或类似的工具进行以下测试:
- 添加员工记录
POST http://localhost:3000/api/employees
请求主体:
{ "firstName": "test", "lastName": "employee" }
- 获取员工记录
GET http://localhost:3000/api/employees
您应该会看到上面添加的记录。
- 删除员工记录
DELETE http://localhost:3000/api/employees/1
上面的请求将尝试删除ID为1的员工记录。因为还没有启用软删除,该记录将被完全删除,无法再次查询和使用。
- 搜索删除的员工记录
GET http://localhost:3000/api/employees?filter[where][deletedAt][neq]=null
指定过滤器选项,筛选已经被逻辑删除的记录。
- 恢复删除的员工记录
现在,我们将通过向删除的记录发送PUT请求来还原它。
PUT http://localhost:3000/api/employees/1/restore
发送 PUT 请求,以将员工记录从软删除中恢复。
- 搜索未删除的员工记录
通过再次执行步骤2,检索未删除的员工记录。现在,您应该会看到已恢复记录以及其他记录。
现在,我们已经成功地实现了 loopback-softdelete-mixin4
软删除包,并对 Employee
模型进行了测试。
总结
通过本教程介绍的步骤,您已经了解了如何使用 loopback-softdelete-mixin4
在您的LoopBack应用程序中实现软删除功能。了解如何使用此功能后,您可以轻松地构建出结构良好、可扩展和具有高度可维护性的RESTful API。希望本文能够为LoopBack开发人员提供帮助和指导。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cf581e8991b448e6b51