首页 > 解决方案 > 如何仅捕获用户修改的字段

问题描述

我正在尝试构建一个日志记录机制,以记录对记录所做的更改。我目前正在记录以前的记录和新记录。但是,由于站点非常繁忙,我预计日志文件会变得非常庞大。为避免这种情况,我计划仅捕获修改后的字段。有没有办法只捕获对记录所做的修改(在 REACT 中),所以我的 {request.body} 将有更少的字段?

我的服务器端是用 NODE.JS 构建的,客户端是 REACT。

标签: node.jsreactjs

解决方案


我发现并为我工作的最佳方式是……</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 的文件中,并将其包含在我的服务器端文件中。它运作良好。

感谢您提供想法...


推荐阅读