【问题标题】:What's the best practice for building a Node.js REST API app with multiple database support?构建具有多个数据库支持的 Node.js REST API 应用程序的最佳实践是什么?
【发布时间】:2019-03-12 19:20:21
【问题描述】:

最近,我为一个简单的博客构建了一个 Node.js REST API,使用 Express.js 来处理 HTTP 请求,并使用 MySQL 来实现持久性(我目前没有使用 ORM:在我的数据库访问层中,我调用存储过程直接)。

My architecture diagram looks like this

但是如果我想放弃 MySQL 并开始使用 MongoDB 怎么办?

我认为最好的方法是在我的应用程序中添加对两个数据库系统的支持,这样如果我想从 MySQL 切换到 MongoDB 或反之,我将准备好两个数据库访问层(撇开数据迁移部分) .

实现这一目标的最佳方法是什么?理想情况下,最好的解决方案只涉及更改应用配置属性以指向我要使用的数据库


【问题讨论】:

  • 由于它们是不同的数据库系统(关系型和非关系型),因此这是一种非常困难的方法。就算是正经的ORM也没有这个特性,但是却可以在关系型数据库之间轻松切换

标签: node.js database express


【解决方案1】:

这很大程度上取决于观点和背景。

每次您需要 NodeJS 与数据库通信时,您都必须使用适合它们的模块来简化连接、查询和其他操作。即使您要自己编写一个模块来抽象数据库,您也只能处理一些特定情况。没有一个模块可以处理所有这些。

在可能同时使用多个 API 的大型应用程序中,它们通常位于不同的端点中。基本上是/api/mongo/api/mysql,你写它们就像你在写一个单一的api,要做出改变,你只需改变你的前端请求。

对于您的具体情况,我建议您查看feathersjs。它有一个 cli 以编程方式执行我上面所说的操作,并支持许多不同的数据库。

【讨论】:

    猜你喜欢
    • 2019-02-15
    • 2021-01-29
    • 1970-01-01
    • 2016-04-18
    • 2012-11-01
    • 2020-11-14
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多