繁体   English   中英

根据用户输入创建查询

[英]Create query based on inputs from user

所以可以说我正在通过数据库进行搜索

router.post('/searchLoads', ensureAuthenticated, async (req, res) => {
var{ agentCode, loadNumber, pickupNumber, pickupDate } = req.body});

用户无需填写所有字段。 我将如何基于 if 语句构建查询? 我正在尝试类似的东西

result = 'await Load.find({';
    if (agentCode !== undefined){
        result += "agentCode: agentCode, ";
    }
    if(loadNumber !== undefined){
        result += "loadNumber: loadNumber, ";
    }
    if(pickupNumber !== undefined){
        result += "pickupNumber: pickupNumber, ";
    }
    if(pickupDate !== undefined){
        result += "pickupDate: pickupDate, ";
    }
    result += "})";

但是,既然我已经创建了查询,我不确定如何运行代码。 有没有更简单的方法来做到这一点?

您可以创建一个对象,而不是创建一个字符串。

假设我们使用 ES6+,我们可以在初始化字段时使用agentCode而不是agentCode: agentCode

var options = {
    agentCode,
    loadNumber,
    pickupNumber,
    pickupDate,
};

result = await Load.find(options);

!== undefined检查不是必需的,因为undefined字段将被删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM