आपको अपनी res.query
को फ़िल्टर करना होगा पहले अपरिभाषित/खाली मानों से ऑब्जेक्ट करें, और फिर इसे find
. पर पास करें समारोह। यदि आपके पास कुछ ही गुण हैं, तो आप if
. का उपयोग कर सकते हैं कथन:
const query = req.query;
const conditions = {};
if (query.what) {
conditions.what = query.what;
}
if (query.where) {
conditions.where = query.where;
}
....
Sound.find(conditions, function () {});
या यदि बहुत सारी संपत्तियां हैं तो आप उन पर पुनरावृति कर सकते हैं:
const query = req.query;
const conditions = Object.keys(query)
.reduce((result, key) => {
if (query[key]) {
result[key] = query[key];
}
return result;
}, {});
Sound.find(conditions, function () {});
साथ ही, मैं वास्तविक res.query
. से संपत्तियों को हटाने की सलाह नहीं दूंगा ऑब्जेक्ट - delete res.query.what
हटाएं - क्योंकि यदि आप चाहें तो आप इसे किसी अन्य मिडलवेयर में उपयोग नहीं कर पाएंगे।