1

目前我只连接到数据库一次,当我启动我的节点应用程序时,就在我加载所有模型之后,我的应用程序准备好通过 socket.io rpc 处理任何请求。

我需要实现逻辑 - 如果客户端执行复杂的请求,并且如果至少一个操作在链中失败 - 例如 - 所有 sql 请求都已成功完成,但未发送带有新密码的电子邮件 - 回滚所有内容并显示错误。

我在问,因为我记得 - 例如,在 php 中,所有进程都与 db 有不同的连接,这就是为什么所有事务都是独立的并且不能交叉,但对于节点来说,它只是一个带有异步请求的进程,理论上可以交叉。这只是我在 node.js 上的第一个应用程序。

是否可以为所有客户端建立 1 个 mysql 连接,或者我需要连接到 mysql,在 socket.io 的每个请求中从远程文件中检索所有模型?

4

1 回答 1

1

我不建议从单个连接中完成所有操作。为每个传入请求连接、查询、断开连接是 Node.js 中的常见模式。如果您使用请求池,这对于大多数用例来说应该足够快。

于 2013-08-13T07:53:48.027 回答