mongoose 使用find條件的問題
发布于 6 年前 作者 frank428p 2560 次浏览 来自 问答

我是初學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;
}
回到顶部