#node.js #typescript #api
Вопрос:
Мы планируем создать одно серверное приложение API nodejs typescript для 2 разных клиентов. Один клиент использует mysql (customerM), а другой-elasticsearch (customerE).
Когда пользователь подключается к приложению, мы хотим, чтобы наш API использовал mysql, а если пользователь подключается, мы хотим, чтобы наш 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 у меня есть метод поиска, но с другим кодом. Мой сервис просто использует метод поиска, мои модели отправляют результат в том же формате.
Но мне не нравится такой подход. У вас есть какие-нибудь советы, ресурсы, … ?
Я новичок в уровне данных, DDD, …
Комментарии:
1. Привет, натансоло. Вопрос немного расплывчатый, и поэтому трудно давать советы без дополнительной информации. В общем, динамичность
require
-это то, чего я бы не советовал, особенно при использовании машинописного текста.2. @cdimitroulas я редактирую свой вопрос и меняю клиента на клиента. Я думаю, это более понятно.