从前端存储记录的用户数据

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 以存储日志。当然angularjsnodejs 之间的连接有哈希方法。

这种方法的优缺点是什么?

【问题讨论】:

日志是什么意思,是登录凭据还是其他什么? 用户执行的所有操作。 (登录、页面、添加、编辑...) 是个好主意, 你永远不能把事情弄得太复杂。两个后端框架和两个后端数据库引擎是一个好的开始。两个前端框架如何,每个框架都有自己的路由器并添加 jQuery UI 组件。添加一些 REST 层不会有什么坏处。可能是 Restangular 和 ngResource。 【参考方案1】:

我已经构建了一个框架,可以记录从前端 JS 应用程序到 ajax 调用的各种用户操作。出于性能原因,它基于异步事件并缓冲操作,直到某个数字排队(通常为 10)或窗口关闭事件。此数据存储在后端数据库中(我们的数据库是固定的 SQL 模式,因此我们已将所有日志标准化为特定格式)。

我们发现这是一个非常好的调试和审计工具。它确实消耗了适量的带宽,而且我们只有几百个同时用户,但我认为通过良好的服务器设计,它可以很好地扩展(我们在两个数据中心使用两组服务器)。

它确实有助于对“操作”进行分类,因此我们有一些用于焦点更改的导航操作、一些用于其他 ajax 调用的 api 操作、用于任何异常的错误日志、一些用于表单数据编辑的输入操作等。我们总是记录一个会话 id、用户 id、时间戳等。最好的部分是框架完成了这一切,应用程序编写者不需要考虑它,除非他们明确想要调用日志记录函数。

您的里程会因您的要求/环境而异,但对我们来说效果很好。

【讨论】:

以上是关于从前端存储记录的用户数据的主要内容,如果未能解决你的问题,请参考以下文章

将用户定义的表类型从 VBA 传递到 SQL

前端存储之indexedDB

04 用户个人信息和二次开发django的文件存储系统

前端小问题

如何防止最终用户在 MS Access 2010 应用程序中从前端查看后端数据?

如何将 html 数据从节点 js 发送到前端?