Javascript 从同一路线获取过滤后的产品。节点,Mongoose,MongoDB

Javascript 从同一路线获取过滤后的产品。节点,Mongoose,MongoDB,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我有一个数据库,里面有一个用模型制作的产品列表 在路线上: router.get('/products', (req, res) => { }) 我有完整的未过滤产品清单 我想按名称、颜色、价格和标签过滤产品,并将其带到前端。 对服务器的请求如下所示: 得到 localhost:3000/产品?名称=笔记本电脑&颜色=黑色&价格=400&标签=技术 如何获取过滤后的产品数据?您已经提到了处理该请求的请求url和路由,然后还询问我必须向路由器发出哪些请求才能进行过滤? 这意味着您想知道如

我有一个数据库,里面有一个用模型制作的产品列表

在路线上:

router.get('/products', (req, res) => {

})
我有完整的未过滤产品清单

我想按名称、颜色、价格和标签过滤产品,并将其带到前端。 对服务器的请求如下所示:

得到 localhost:3000/产品?名称=笔记本电脑&颜色=黑色&价格=400&标签=技术


如何获取过滤后的产品数据?

您已经提到了处理该请求的请求url和路由,然后还询问
我必须向路由器发出哪些请求才能进行过滤?
这意味着您想知道如何从route handler获取过滤后的产品数据

 router.get('/products', (req, res) => {
//I assume that your product model is 'Product'
const filteredProduct=Product.find(req.query);
})
请参考上面处理这两个请求的示例路由处理程序

GET localhost: 3000/products?name=laptop&color=black&price=400&tags=tech     //get filtered product
GET localhost: 3000/products/                    //get all product
这里我假设Product是您的数据模型,所以要获取所有产品记录,您需要调用find()mongoose方法,而不需要任何参数;要获取筛选数据,请将object传递给find方法。例如,您希望所有产品都按名称、颜色进行筛选

Product.find({name:'laptop',color:'black'}) 
将在解析查询字符串后返回JS对象。
阅读更多关于,,

的信息,如果这个答案能解决您的问题。非常感谢您的回答,这对我帮助很大!