考虑一下控制器内部的函数,如下所示:
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]);
......
查询中的这些附加内容(数据库连接和专门填充)是否可以在查询中移动?