簡體   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