Задача:
Есть back-end на Node + Express. Нужно реализовать возможность CRUD для трёх коллекций (human, tree, planet) в Mongo. Все запросы на работу с коллекцией приходят из HTTP-запросов, через Express. Каждая коллекция имеет разное количество полей.
Есть два варианта реализовать:
1. Создавать
3 * 4 роутера (
router.get(/create-planet), (/update-planet) и т.д.) в Express, и так же создавать
3 * 4 функции для работы с Mongo. В общем вручную прописывать
db.collection.insert множество раз, и так со всеми видами операций.
2. Повысить уровень абстракции, и создать всего 1 роутер (
router.post(/multi-router)) и 1 супер-абстрактный метод для работы с БД. В этот роутер будет приходить JSON, который будет содержать вид операции, название коллекции и данные для операции. А универсальный метод будет парсить JSON, извлекать вид операции и вставлять в запрос к БД:
db.collection[operationString]{operationParams} // псевдокод
То есть чтобы программист не писал ни название коллекций в исходниках, ни вид операции с коллекциями. Чтобы всё это поднялось на уровень выше.
В общем второй способ подразумевает, что программа будет сама себя "создавать" во время работы, всего несколько строк кода, и всю работу сделают входные данные. Зато нет рутины и не нужно копипастить строки кода с повторяющимися вызовами. Нормально ли это? Или как правильно?