如何在 Node.JS 应用程序中同时支持 PostgreSQL 和 SQL Server?

Posted

技术标签:

【中文标题】如何在 Node.JS 应用程序中同时支持 PostgreSQL 和 SQL Server?【英文标题】:How to support both PostgreSQL and SQL Server in a Node.JS application? 【发布时间】:2012-05-11 08:04:37 【问题描述】:

我目前正在开发一个需要能够在 PostgreSQL 和 SQL Server 数据库之间切换的 Node.js 应用程序。两个数据库都有相同的表,操作也相同(基本的 CRUD,没什么花哨的)。

我进行了研究,并且知道周围有足够的库可以访问这两个数据库。

理想情况下,我想使用 ORM 并让它处理差异。但是,我似乎无法找到一个兼具两者的 ORM 框架。事实上,我找不到任何支持 SQL Server 的 ORM,而几乎所有的 ORM 都支持 Postgres。

所以我的问题是:是否有支持两者的 ORM?如果没有,是否有其他抽象工具/框架可以让我的开发人员生活更轻松?

【问题讨论】:

这不是一个真正的答案,但我最终潜入了 JugglingDB (github.com/1602/jugglingdb) 它有一个相当简单的集成新数据库的方法。我还没有实现完整的适配器,所以现在它还没有准备好用于一般用途,但我希望有一天能完成它并将它捐赠给项目(客户可以接受)。 【参考方案1】:

这里有一定数量的YAGNI,但是如果你找不到支持两者的 ORM,你的下一个最佳选择是只使用 Adapter Pattern 并确保你没有直接使用 ORM你的代码,但通过一个包装器。然后,如果/当您需要对 SQL Server 的支持时,您可以为将替换 PostgreSQL 实现的包装器创建实现。

【讨论】:

我不确定这是 YAGNI。我有两个具有相同表的不同数据库。我需要一个可以同时处理两者的应用程序(但不是同时,这将是启动时的一个选项)。而且我更喜欢使用 ORM 层,因为它减少了编写 SQL 和其他样板代码所需的时间。 你是对的,适配器模式可能是要走的路。

以上是关于如何在 Node.JS 应用程序中同时支持 PostgreSQL 和 SQL Server?的主要内容,如果未能解决你的问题,请参考以下文章

node 环境下一个文件如何同时支持 import 和 require

Node.js能解决什么问题?

构建基于 Node.js 的条形码识别程序

如何在 node.js 中同时使用多个代理(代理)

如何在 Mongoose/Node.js 中同时保存多个文档?

Node.js知识点整理之----简介