前言
在开发 Web 应用时,后台管理是一个必不可少的组件。而在实际的开发过程中,为了保证数据的安全性,在数据库层面加入审计功能也变得越来越重要。
adonis-auditable 是一个基于 AdonisJS 框架实现的审计包,能够追踪记录数据的变化。本文将会介绍 adonis-auditable 包的安装、使用以及如何对其进行扩展。
安装
安装 adonis-auditable 包需要先安装 AdonisJS 框架,可以通过以下命令来安装:
npm install --global @adonisjs/cli
安装完成后,可在命令行中输入以下指令来创建一个新的 AdonisJS 项目:
adonis new myapp
接着,在项目目录中执行以下命令来安装 adonis-auditable 包:
npm install adonis-auditable
使用
- 在模型文件中使用 adonis-auditable
在模型文件中引入 adonis-auditable 包,示例代码如下:
-- -------------------- ---- ------- ----- ----- - ------------ ----- --------- - -------------------------------------------- ----- ---- ------- ----- - ------ ---- -- - ------------ ------------------------ - - -------------- - ----
- 开启审计功能
在 config/auditable.js 文件中配置数据库连接信息和需要审计的字段信息,示例代码如下:
'use strict' module.exports = { connection: 'sqlite', user: { fields: ['username', 'email', 'password'] } }
- 创建审计记录表
执行以下命令,使用 adonis-ace 工具来生成审计记录表:
adonis migration:run
- 测试
我们可以使用以下代码来测试审计功能:
-- -------------------- ---- ------- ----- ---- - ---------------------- -- ---- ----- ---- - --- ------ ------------- - ------ ---------- - ------------------ ------------- - ---------- ----- ----------- -- ---- ------------- - -------------- ----- ----------- -- ---- ----- -------------
在测试完成后,我们可以在审计表中查看到对应的记录。
扩展
adonis-auditable 包提供了默认的审计功能实现,但我们也可以对其进行扩展以达到更加灵活的需求。
- 自定义审计表名和字段名
在 config/auditable.js 中添加表名和字段名:
-- -------------------- ---- ------- ---- ------- -------------- - - ----------- --------- ----- - ------ ----------------- ------- - - ----- ----------- ------- ------ -- - ----- -------- ------- ------ -- ---------- - - -
- 实现审计方法
在自定义的模型文件中实现审计方法,代码示例如下:
-- -------------------- ---- ------- ----- ----- - ------------ ----- --------- - -------------------------------------------- ----- ----------- ------- ----- - ------ ---- -- - ------------ ------------------------------------ - -- ------- ------ --------------- -- - ----------------- -- - ------ --------- --------- - ------ -------------- -- - ------ ----- ------- --------- - ----------- -- - ------- --------------------------------------------------- - ----- --------------------- -- - ------------------- --------- --------- - ------ ---- -- - ------------ -------------------------- ----- --------------- -- - -- --------------------- - ----- ----------------------------- - ---- - ----- ----- - ------------------- -- --------------------------- - ----- --------------------------- ------ - - -- ---------------------------- ----- --------------- -- - ----- ----------------------------- -- - - - - -------------- - -----------
在 model.js 中引入 CustomModel
,并在 User
模型中使用:
const CustomModel = require('./CustomModel') class User extends CustomModel { // ... }
结论
adonis-auditable,是一个十分灵活且方便使用的审计包,可以帮助我们实现对数据库数据的变更的审计记录,防止数据被篡改或者无意修改后造成後果,同时,其分层式配置也使得其可以根据具体业务需求实现相应的审计措施。
参考链接
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600566c281e8991b448e31f8