Node.js 如何使用两个不同的数据库创建一个NodeJSAPI?

Node.js 如何使用两个不同的数据库创建一个NodeJSAPI?,node.js,typescript,api,Node.js,Typescript,Api,我们计划为2个不同的客户创建一个API后端nodejs typescript应用程序。一个客户使用mysql(customerM),另一个客户使用elasticsearch(customerE) 当customerM连接到应用程序时,我们希望API使用mysql,如果CustomerConnect,我们希望API使用ES 我们知道NoSQL和MySQL有不同的方法,但出于代码维护的原因,我们需要一个后端(有两个独立的项目做相同的事情不是一个好的解决方案) 目前,我正在使用架构,从mysql和js

我们计划为2个不同的客户创建一个API后端nodejs typescript应用程序。一个客户使用mysql(customerM),另一个客户使用elasticsearch(customerE)

当customerM连接到应用程序时,我们希望API使用mysql,如果CustomerConnect,我们希望API使用ES

我们知道NoSQL和MySQL有不同的方法,但出于代码维护的原因,我们需要一个后端(有两个独立的项目做相同的事情不是一个好的解决方案)

目前,我正在使用架构,从mysql和json文件中检索数据以模拟客户端。我使用routes=>controllers=>services=>models。我们希望从模型中检索数据,对其进行转换并将其发送到服务(服务将始终具有相同的模式)。目前,我有sensors.model.ts负责从env变量中选择要使用的正确模型:

let Sensor = null;

switch (config.db.source) {
  case 'file':
    Sensor = require('./sensors.model.file');
    break;
  case 'mysql':
    Sensor = require('./sensors.model.mysql');
    break;
}

export default Sensor;
在每个文件sensors.model.xxx.ts中,我都有一个查找方法,但代码不同。我的服务只是使用find方法,我的模型以相同的格式发送结果

但我不喜欢这种方法。你有什么建议吗,资源


我不熟悉数据层,DDD,

你好,nathansolo。这个问题有点含糊不清,因此在没有更多信息的情况下很难给出建议。一般来说,动态
require
是我的建议,尤其是在使用Typescript时。@cdimitroulas我编辑我的问题并为客户更改客户端。我觉得更容易理解。