首页 > 解决方案 > 如何使用两个不同的数据库创建一个 nodejs API?

问题描述

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

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

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

现在我正在玩架构并从 mysql 和 json 文件中检索数据以模拟客户端。我使用路由 => 控制器 => 服务 => 模型。我们希望从模型中检索数据,对其进行转换并将其发送到服务(服务将始终具有相同的模式)。现在,我有 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 方法,但代码不同。我的服务只使用 find 方法,我的模型以相同的格式发送结果。

但我不喜欢这种方法。你有一些建议,资源,......?

我是数据层的新手,DDD,...

标签: node.jstypescriptapi

解决方案


推荐阅读