Vous devez filtrer votre res.query
objet à partir de valeurs indéfinies/vides d'abord, puis passez-le à find
fonction. Si vous n'avez que quelques propriétés, vous pouvez utiliser if
déclaration :
const query = req.query;
const conditions = {};
if (query.what) {
conditions.what = query.what;
}
if (query.where) {
conditions.where = query.where;
}
....
Sound.find(conditions, function () {});
Ou s'il y a beaucoup de propriétés, vous pouvez les parcourir :
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 () {});
De plus, je ne conseillerais pas de supprimer les propriétés du réel res.query
objet - delete res.query.what
- car vous ne pourrez pas l'utiliser dans un autre middleware si vous le souhaitez.