node.js - 如何仅捕获用户修改的字段
问题描述
我正在尝试构建一个日志记录机制,以记录对记录所做的更改。我目前正在记录以前的记录和新记录。但是,由于站点非常繁忙,我预计日志文件会变得非常庞大。为避免这种情况,我计划仅捕获修改后的字段。有没有办法只捕获对记录所做的修改(在 REACT 中),所以我的 {request.body} 将有更少的字段?
我的服务器端是用 NODE.JS 构建的,客户端是 REACT。
解决方案
我发现并为我工作的最佳方式是……</p>
在我处理更新请求的 api 服务器端,在访问数据库之前,我使用 lodash 对上一条记录和 {request.body} 进行区分,并使用结果发送到我的更新数据库函数
var _ = require('lodash');
const difference = (object, base) => {
function changes(object, base) {
return _.transform(object, function (result, value, key) {
if (!_.isEqual(value, base[key])) {
result[key] = (_.isObject(value) && _.isObject(base[key])) ? changes(value, base[key]) : value;
}
});
}
return changes(object, base);
}
module.exports = difference
我将上面的代码保存在一个名为 diff.js 的文件中,并将其包含在我的服务器端文件中。它运作良好。
感谢您提供想法...
推荐阅读
- azure - 如何使用 Azure API v2 创建虚拟机
- javascript - React - 使用引导程序创建手风琴不会在点击时展开/关闭
- c# - ASP.NET Webform如何使用Ninject.Web.Common.WebHost Prop注入
- xml - 运行 XSLT 时 REMOTE_ADDR 消失
- django - 在单个 html 页面中批量下载在多个类别下呈现的图像
- extjs - checkcolumn 网格单元格边界根据 sencha 6.0.2 中的禁用启用状态进行条件更改
- php - PHP比较数组中的项目
- python - Python bs4 Scraping,如何在列表中找到某些类并跳过但刮掉其余部分
- firebase - 如何使用flutter cloud_firestore包传递firestore auth token
- php - Divi favicon 不安全链接