[英]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.