mongoose 使用find條件的問題
我是初學nodejs的新人 目前搭建一個REST API 前端會POST五個參數過來(title, brand, size, price, status) 這五個參數可以全部是空值或是任一空值 目前代碼如下
var title = req.body.title;
var status = req.body.status;
var brand = req.body.brand;
var size = req.body.size;
var price = req.body.price;
postsneaker.find({'title': title,'status': status, 'brand': brand, 'size': size, 'price': price }).sort({'cre_dt' : 'desc'}).exec(function (err,data) {
response = {'data' : data };
res.json(response);
})
因為在mongodb裡 每個欄位都是有值的 但前端只要其中一項參數是空值 返回的data為空 該如何實現參數為空時 在find的時候可以忽略該項條件 麻煩大神們指點
2 回复
使用joi这样的校验工具处理一下就好,https://github.com/hapijs/joi
类似工具很多
我是一步步构造 query 对象,像下面这样
const query = {};
if (req.query.title) {
query.title = req.query.title;
}