node.js - 在 Node.js 中操作从数据库中获取的数字的最佳/最合适的方法

标签 node.js express optimization sequelize.js

我的任务是从一对非常复杂的 sequelize 计数查询(每个大约 25 行)中获取两个数字并进行简单的减法。
这发生在 express.js Controller 上,我想知道这是最好的方法,考虑到让它可读但聪明和实用。
请记住,此减法结果稍后将用作第三个 sequelize 查询中的条件。因此,如果 Controller 保持一定程度的清洁和性能,则可以获得奖励积分。

一些想法作为 promise ,但也欢迎观察:

            //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;

最佳答案

当我听到关于这种计算的“聪明”时,我感到畏缩。我曾经那样聪明,但不够聪明,有几次。结局并不好。

请通过这种计算,使您的代码尽可能清晰易读。到目前为止,清晰的逻辑是最好的方式,也许也是唯一的方式,可以让您知道自己的逻辑完全正确。

如果是我,我会写一个产生答案的 SQL VIEW。那是因为我在一个人们知道 SQL 并且我们可以阅读它的地方工作。

在您的情况下,编写 async 函数(您的第三种选择)可以让您使用 await 操作编写清晰的分步代码。

调试代码的难度是编写代码的两倍。所以不要用你所有的才能和聪明才智来编写代码,否则你将永远无法调试它。

关于node.js - 在 Node.js 中操作从数据库中获取的数字的最佳/最合适的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61036557/

相关文章:

javascript - 提交 POST 并在 Nodejs/EJS 中处理结果

node.js - Express:组合中间件

mysql - 如何从数据库获取最后插入的id并将其发送到组件?

python - 如何过滤 pandas 中特定值的数据框?

python - 二维的 Scipy curve_fit 不起作用 - 对象太深?

javascript - 我在尝试登录我的应用程序时不断收到 401 错误

javascript - 在 promise 中断言函数调用

node.js - 带有 Socket.io 和 Node 的动态房间

javascript - 仅当数组中尚不存在某些内容时才添加到数组中?

算法:距离变换 - 任何更快的算法?