在使用 LoopBack 开发 RESTful API 时,经常需要使用 soft-delete 模式。而 loopback-sdelete-mixin-blueeast npm 包可以为您提供该功能。本文将详细介绍如何向您的 LoopBack 项目中添加 loopback-sdelete-mixin-blueeast npm 包,并配置使用。
安装
要添加 loopback-sdelete-mixin-blueeast 包,您可以使用 npm 并在项目的根目录下运行以下命令:
--- - ------ -------------------------------
这将在您的项目的本地 node_modules 文件夹下添加包。
配置
JSON 配置
LoopBack 应用程序通常包含一个具有唯一的数据源的 server/datasources.json 文件。loopback-sdelete-mixin-blueeast 包需要在 datasources.json 文件中添加一个新的 mixnins 的数组属性,该属性包括您要使用的 mixin 的名称。添加以下代码:
- ----------------- - --- --------- - ------------- ----------- - - -
JavaScript 配置
您还可以在 LoopBack 应用程序的 model-config.json 文件中配置 mixin。在 model-config.json 文件中,打开要使用 mixin 的 model 和 models 块,并添加以下代码:
- ------- ------------ --------- - ------------- ----- ------------ ---- - -
使用
添加民只后,您现在可以为您的模型启用软删除。要启用软删除,只需在您的 model 中添加以下代码即可:
- ------- ------------ --------- - ------------- ----- ------------ ---- -- ------------- - ------- - ------- --------- ----------- ---- - - -
您还可以通过执行 RESTFUL 操作以标记模型实例为删除状态,而不实际删除它。例如,对于名称为 your-model 的 model,您可以使用以下代码执行删除操作:
------------------ --- - ---
在执行上述代码后,LoopBack 将更新数据并将 deletedAt 列设置为当前时间戳。您可以使用以下代码来查找已删除的记录:
---------------- ------ - ---------- - ---- ---- - - ---
示例代码
以 LoopBack 应用程序为例,您可以配置为使用 loopback-sdelete-mixin-blueeast npm 包。以下是 LoopBack 应用程序 model-config.json 文件和 model.js 文件的示例代码:
model-config.json 文件
- ------------ - ------------- ----------------- --------- ----- ---------- - ---------- - - ------ ----- ------- --------- ----------- ---- - -- ---------- - ------- ---- -- ------- - ------- --------- ------- ------------- - -- --------- - ------------- ----- ------------ ---- - - -
Model.js 文件
-------------- - ------------------- - ---------------- - ------------ --- - --------------------- --- -- -- - ---------- --- ------ -- ---- -- --
总结
在开发 LoopBack 应用程序时,基于软删除模式的数据存储非常普遍。在 Node.js 中,loopback-sdelete-mixin-blueeast是一个非常流行的 npm 包,可以帮助您启用和管理软删除。在本文中,我们详细介绍了如何向一个 LoopBack 项目中添加和配置 loopback-sdelete-mixin-blueeast 包。希望本文能够帮助您轻松地为您的 LoopBack 应用程序添加 soft-delete 模式。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60056cbf81e8991b448e638b