从前端存储记录的用户数据
Posted
技术标签:
【中文标题】从前端存储记录的用户数据【英文标题】:storing logged user data from front-end 【发布时间】:2019-11-19 15:19:24 【问题描述】:我在前端使用angularjs
,在后端使用laravel
框架。我的数据库是mysql
。
我需要存储所有用户的日志。由于我不想将用户的日志存储在 mysql 中,所以我选择了MongoDB
。
现在我不想使用laravel
来存储用户的日志,而是我想使用nodejs
。
一目了然:
laravel - mysql : 存储数据
nodejs - mongoDB : 存储用户日志
我的问题,
我想将用户的日志从angularjs
发送到nodejs
并将它们存储在mongoDB
中。
我认为大多数系统都从服务器端存储用户的日志(这里是 laravel 到 mongodb 或 mysql),但我将用户的日志从前端发送到 nodejs
以存储日志。当然angularjs
和nodejs
之间的连接有哈希方法。
这种方法的优缺点是什么?
【问题讨论】:
日志是什么意思,是登录凭据还是其他什么? 用户执行的所有操作。 (登录、页面、添加、编辑...) 是个好主意, 你永远不能把事情弄得太复杂。两个后端框架和两个后端数据库引擎是一个好的开始。两个前端框架如何,每个框架都有自己的路由器并添加 jQuery UI 组件。添加一些 REST 层不会有什么坏处。可能是 Restangular 和 ngResource。 【参考方案1】:我已经构建了一个框架,可以记录从前端 JS 应用程序到 ajax 调用的各种用户操作。出于性能原因,它基于异步事件并缓冲操作,直到某个数字排队(通常为 10)或窗口关闭事件。此数据存储在后端数据库中(我们的数据库是固定的 SQL 模式,因此我们已将所有日志标准化为特定格式)。
我们发现这是一个非常好的调试和审计工具。它确实消耗了适量的带宽,而且我们只有几百个同时用户,但我认为通过良好的服务器设计,它可以很好地扩展(我们在两个数据中心使用两组服务器)。
它确实有助于对“操作”进行分类,因此我们有一些用于焦点更改的导航操作、一些用于其他 ajax 调用的 api 操作、用于任何异常的错误日志、一些用于表单数据编辑的输入操作等。我们总是记录一个会话 id、用户 id、时间戳等。最好的部分是框架完成了这一切,应用程序编写者不需要考虑它,除非他们明确想要调用日志记录函数。
您的里程会因您的要求/环境而异,但对我们来说效果很好。
【讨论】:
以上是关于从前端存储记录的用户数据的主要内容,如果未能解决你的问题,请参考以下文章