在动态更改中填充和使用连接是什么?

时间:2018-09-28 13:37:57

标签: javascript orm sails.js waterline

考虑一下控制器内部的函数,如下所示:

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]);
 ......

查询中的这些附加内容(数据库连接和专门填充)是否可以在查询中移动?

0 个答案:

没有答案