Anda harus memfilter res.query
objek dari nilai yang tidak ditentukan/kosong terlebih dahulu, lalu meneruskannya ke find
fungsi. Jika Anda hanya memiliki beberapa properti, Anda dapat menggunakan if
pernyataan:
const query = req.query;
const conditions = {};
if (query.what) {
conditions.what = query.what;
}
if (query.where) {
conditions.where = query.where;
}
....
Sound.find(conditions, function () {});
Atau jika ada banyak properti, Anda dapat mengulanginya:
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 () {});
Juga, saya tidak menyarankan untuk menghapus properti dari res.query
yang sebenarnya objek - delete res.query.what
- karena Anda tidak akan dapat menggunakannya di middleware lain jika Anda mau.