我的任务是从一对非常复杂的 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/