Bạn phải lọc res.query
của mình đối tượng từ các giá trị không xác định / trống trước tiên, sau đó chuyển nó vào find
hàm số. Nếu bạn chỉ có một vài thuộc tính, bạn có thể sử dụng if
tuyên bố:
const query = req.query;
const conditions = {};
if (query.what) {
conditions.what = query.what;
}
if (query.where) {
conditions.where = query.where;
}
....
Sound.find(conditions, function () {});
Hoặc nếu có nhiều thuộc tính, bạn có thể lặp lại chúng:
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 () {});
Ngoài ra, tôi không khuyên bạn nên xóa các thuộc tính khỏi res.query
thực tế đối tượng - delete res.query.what
- bởi vì bạn sẽ không thể sử dụng nó trong một phần mềm trung gian khác nếu bạn muốn.