получать отфильтрованные продукты по тому же маршруту. Узел, пн goose, MongoDB - PullRequest
0 голосов
/ 02 августа 2020

У меня есть база данных со списком продуктов, составленным из моделей.

В пути:

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

})

У меня есть полный нефильтрованный список продуктов.

Я хочу чтобы отфильтровать товары по названию, цвету, цене и тегам и вывести их во внешний интерфейс. и запрос к серверу будет таким:

GET localhost: 3000 / products? name = laptop & color = black & price = 400 & tags = tech

как получить отфильтрованные данные о продукте?

1 Ответ

1 голос
/ 04 августа 2020

вы упомянули URL-адрес запроса и маршрут, который обрабатывает этот запрос, а затем также спросите, что What would be the requests that I have to make to the router to filter? это означает, что вы хотите знать, как получить отфильтрованные данные о продукте из обработчика маршрута.

 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 () mon goose без каких-либо параметров и получить отфильтрованные данные, передайте объект в метод поиска. например, вы хотите, чтобы весь продукт был отфильтрован по имени, цвету

Product.find({name:'laptop',color:'black'}) 

req.Query вернет объект JS после того, как строка запроса будет разобраны. подробнее о req.Query , req.params , req.body

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...