最近,我为一个简单的博客构建了一个Node.js REST API,该博客使用Express.js处理HTTP请求,并使用MySQL进行持久化(我目前未使用ORM:在数据库访问层中,我调用存储过程直接)。
但是如果我想抛弃MySQL并开始使用MongoDB怎么办?
我认为最好的方法是在我的应用程序中增加对两个数据库系统的支持,因此,如果我想从MySQL切换到MongoDB或反之亦然,我将准备好两个数据库访问层(预留数据迁移部分)
实现此目标的最佳方法是什么?理想情况下,最佳解决方案是更改应用程序配置属性以指向要使用的数据库
答案 0 :(得分:0)
这在很大程度上取决于观点和背景。
每次需要NodeJS与数据库进行通信时,都必须使用适合它们的模块来简化连接,查询和其他操作。即使您自己编写一个模块来抽象数据库,您也只能处理一些特定情况。没有一个模块可以处理所有这些模块。
在可能同时使用多个api的大型应用程序中,它们通常位于不同的端点。基本上是/api/mongo
和/api/mysql
,您就像编写单个api一样都写了它们,并且要进行更改,您只需更改前端请求即可。
对于您的具体情况,我建议您看看feathersjs。它具有一个cli,可以通过编程实现上述功能,并且支持许多不同的数据库。