我想建立一个活动历史记录集合,其中存储有关动作的信息 表演者制作的。表演者可以是客户,供应商甚至是管理员。
目标是轻松,完整地获得每个用户所做的历史/日志/活动列表 管理。
这是我刚开始制作的Log
类:
module.exports = class Log {
constructor(req, params) {
this.req = req;
this.params = params;
this.action;
}
createdEmployee(cb) {
this.action = {
type: "insert",
title: "Created employee",
title_translated: t["Created employee"],
short_description: this.params.short_description || null
}
return this.insert(cb);
}
updatedSupplier(cb) {
this.action = {
type: "update",
title: "Updated supplier",
title_translated: t["Updated supplier"],
short_description: this.params.short_description || null
}
return this.insert(cb);
}
insert(cb) {
let newValues = {
_supplier: this.req._supplier, // the organization id of the creator
_user: this.req._user, // the id of the creator
action: this.action,
date: new Date(),
log: {
old_record: this.params.old_record || {},
new_record: this.params.new_record || {}
},
api_endpoint_metadata: {
url: this.req.url,
method: this.req.method
}
};
db.logs.insert(newValues, function(err, docs) {
if (err) return cb(err);
return cb();
});
}
}
这是将其用于记录插入操作的方式:
let params = {
short_description: "John Awesome",
old_record: {},
new_record: obj // some object with the new data to be inserted
}
let log = new Log(req, params);
log.createdEmployee(err => {
// some code
});
这是用于记录更新操作的方法:
let params = {
short_description: "Changed permission level",
old_record: old_obj, // the current record - before changes
new_record: obj // some object with the new data to be updated
}
let log = new Log(req, params);
log.updatedSupplier(err => {
// some code
});
这样,我可以拥有一个集合来存储用户进行的活动的历史记录。
我的问题是-请允许我将其拆分为半子问题:
我应该叫课-日志吗?我担心的是它将与日志记录错误工具发生冲突, 例如温斯顿。我该如何称呼它,日志,活动或其他内容?
我做了一个自定义类,但也许您知道一个模块在做类似的事情-所以我可以参考 还是学习和比较的模块?
接下来,我要打印所做的更改-由日志收集提供(或如何命名)。 您知道显示这些更改的任何模块吗?我说的是Git如何显示变化。