nodejs 中使用mysql数据有没有类似 mongoose 的中间件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs 中使用mysql数据有没有类似 mongoose 的中间件相关的知识,希望对你有一定的参考价值。

参考技术A   node.js require是一次加载的,所以可以创建一个mysql的长连接, 不需要关闭。 mongo也如此。本回答被提问者和网友采纳 参考技术B Bookshelf.js Sequelize.js

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

【中文标题】从前端存储记录的用户数据【英文标题】: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、时间戳等。最好的部分是框架完成了这一切,应用程序编写者不需要考虑它,除非他们明确想要调用日志记录函数。

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

【讨论】:

以上是关于nodejs 中使用mysql数据有没有类似 mongoose 的中间件的主要内容,如果未能解决你的问题,请参考以下文章

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

使用 MySql/Node js 创建通知服务器

nodejs连接mysql并进行简单的增删查改

Nodejs与Mysql数据库返回值

具有express-sessions和express-mysql-session的NodeJS没有设置会话。我搞砸了哪里?

用nodejs搭建类似于C++的服务器后台.类似网易pomelo