Как корректно обработать двойной запрос к API и MongoDB на сервере?
Есть задача:
При запросе к серверу на express.js искать данные на стороннем API и выдавать пользователю. При этом, при запросе необходимо проверять, нет ли данной записи в базе данных MongoDB и если нет - то создать.
Пока в запросе req.query всего один параметр с одним значением алгоритм выглядит простым:
1. Послать запрос.
2. С помощью полученных данных поискать запись в БД.
3. Если записи нет - создать и отправить пользователю, если есть - отправить найденную.
Но требования задачи такие, что параметр может содержать два значения. Тогда алгоритм, с учётом асинхронности кода значительно усложняется и содержит много дублирующих операций (по крайней мере в моей реализации):
1. Послать запрос первого значения.
2. Поискать в БД.
3. Если не найдено, то создать.
4. Послать запрос второго значения и повторить п.2 и п.3.
5 Выдать результат с обеими записями.
В коде это выглядит мешаниной if else а также кучей промисов.
Есть ли какое-то более оптимальное решение, которое я упускаю и где можно почитать об этом?