如何仅捕获用户修改的字段

时间:2018-12-17 11:40:30

标签: node.js reactjs

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

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

2 个答案:

答案 0 :(得分:0)

您可能要考虑的一种方法是在文本字段中添加onChange(universal)或onTextChanged(native)侦听器,并将表单更新存储在本地状态/变量中。

最后,当用户执行操作(提交等)时,可以将更新的数据发送到日志记录模块。

答案 1 :(得分:0)

找到并为我工作的最好方式是……

在api服务器端,在我处理更新请求的地方,在访问数据库之前,我使用lodash在以前的记录和{request.body}之间进行了区别,并使用结果发送到我的更新数据库函数< / p>

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的文件中,并将其包含在服务器端文件中。 效果很好。

感谢您提出想法...

相关问题