Хорошо, рассмотрим функцию внутри контроллера, как показано ниже:
test_func: async function(id, update_vals, connection=undefined) {
if (connection !== undefined) {
await Data.update({id: id}, update_vals).usingConnection(connection);
} else {
await Data.update({id: id}, update_vals);
}
}
Я должен создать оператор if, основываясь на том, используется ли функция внутри транзакции или нет.Это становится еще хуже, когда мы добавляем в список еще один флаг «fetch».Внезапно возникает 4 случая, и каждый нуждается в своем собственном операторе if из-за требований синтаксиса.
Или в месте, где это становится даже невозможным: функция, которая получает данные и заполняет их на основе списка ввода:
get_test_func: async function(id, populated_list) {
if (populated_list.length === 0) {
return Data.find({id: id}).populate(populated_list[0]);
} else if (populated_list.length === 1) {
return Data.find({id: id}).populate(populated_list[0])
.populate(populated_list[1]);
......
Можно ли переместить эти дополнения в запрос (специально для соединения с БД и заполнить) внутри запроса?