Лучший / наиболее адекватный способ управления числами, взятыми из базы данных в Node.js - PullRequest
0 голосов
/ 05 апреля 2020

Моя задача состоит в том, чтобы взять два числа, полученные из довольно сложной пары запросов подсчета сиквелизов (около 25 строк каждый), и выполнить простое вычитание. Это происходит на express. js контроллере, и мне интересно, какой это лучший способ сделать это, учитывая, чтобы сделать его читаемым, но умным и функциональным. Имейте в виду, что этот результат вычитания будет позже использован в качестве условия в третьем запросе продолжения. Таким образом, бонусные баллы, если контроллер остается несколько чистым и работоспособным.

Некоторые идеи в качестве обещаний, но наблюдаемые также приветствуются:

            //OP1
            var result = (
                await (Table1.count(sequelize_query1)) -
                await (Table2.count(sequelize_query2))
            );
            //OP2
            var result = await (
                Table1.count(sequelize_query1)
            ) - (
                Table2.count(sequelize_query2)
            );
            //OP3
            var number1 = await Table1.count(sequelize_query1);
            var number2 = await Table2.count(sequelize_query2);
            var result = number1-number2;

1 Ответ

1 голос
/ 05 апреля 2020

Когда я слышу «умный» об этом виде вычислений, я съеживаюсь. Я был таким умным, но не достаточно умным, несколько раз. Это плохо кончается.

Пожалуйста, с помощью такого рода вычислений сделайте свой код максимально понятным и легким для чтения. Чистая логика c - безусловно, лучший и, возможно, единственный способ узнать, что вы абсолютно правы.

Если бы это был я, я бы написал SQL ПРОСМОТР, который дал бы ответ. Это потому, что я работаю в месте, где люди знают SQL, и мы можем его прочитать.

В вашем случае написание async функций (ваш третий выбор) позволяет вам написать четкий пошаговый код с await операциями.

Отладка кода вдвое сложнее, чем его написание. Так что не используйте весь свой код написания талантов для рекламы, иначе вы никогда не сможете его отладить.

...