Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';构建具有多个数据库支持的Node.js REST API应用程序的最佳实践是什么?_Node.js_Database_Express - Fatal编程技术网

什么';构建具有多个数据库支持的Node.js REST API应用程序的最佳实践是什么?

什么';构建具有多个数据库支持的Node.js REST API应用程序的最佳实践是什么?,node.js,database,express,Node.js,Database,Express,最近,我为一个简单的博客构建了Node.js REST API,使用Express.js处理HTTP请求,使用MySQL进行持久化(我目前没有使用ORM:在我的数据库访问层中,我直接调用存储过程) 但是如果我想抛弃MySQL并开始使用MongoDB呢 我认为最好的方法是在我的应用程序中添加对两个数据库系统的支持,这样如果我想从MySQL切换到MongoDB或viceversa,我就可以准备好两个数据库访问层(不考虑数据迁移部分) 实现这一点的最佳方法是什么?理想情况下,最好的解决方案只需将应用

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

但是如果我想抛弃MySQL并开始使用MongoDB呢

我认为最好的方法是在我的应用程序中添加对两个数据库系统的支持,这样如果我想从MySQL切换到MongoDB或viceversa,我就可以准备好两个数据库访问层(不考虑数据迁移部分)

实现这一点的最佳方法是什么?理想情况下,最好的解决方案只需将应用程序配置属性更改为我要使用的数据库


这在很大程度上是基于观点和背景的

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

在可以同时使用多个API的大型应用程序中,它们通常位于不同的端点。基本上是
/api/mongo
/api/mysql
,您编写它们就像编写单个api一样,为了进行更改,只需更改前端请求


对于你的具体情况,我建议你看看。它有一个cli,可以通过编程实现我上面所说的功能,并支持许多不同的数据库。

这在很大程度上是基于观点和上下文的

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

在可以同时使用多个API的大型应用程序中,它们通常位于不同的端点。基本上是
/api/mongo
/api/mysql
,您编写它们就像编写单个api一样,为了进行更改,只需更改前端请求


对于你的具体情况,我建议你看看。它有一个cli,可以通过编程实现我上面所说的功能,并支持许多不同的数据库。

因为它们是不同的数据库系统(关系型和非关系型),这是一种非常困难的方法。即使是严肃的ORM也没有这个特性,但是它们能够在关系数据库之间轻松切换,因为它们是不同的数据库系统(关系数据库和非关系数据库),这是一个非常困难的方法。即使是严肃的ORM也没有这个特性,但它们能够在关系数据库之间轻松切换