In MERN Marketplace, visitors will be able to search for specific products by name and also in a specific category.
To allow users to select a specific category to search in, we will set up an API that retrieves all the distinct categories present in the Product
collection in the database. A GET request to /api/products/categories
will return an array of unique categories.
mern-marketplace/server/routes/product.routes.js
:
router.route('/api/products/categories') .get(productCtrl.listCategories)
The listCategories
controller method queries the Product
collection with a distinct
call against the category
field.
mern-marketplace/server/controllers/product.controller.js
:
const listCategories = (req, res) => { Product.distinct('category',{},(err, products) => { if (err) { return res.status(400).json({ error: errorHandler.getErrorMessage(err) }) } res.json(products) }) }
This categories API can be used in the frontend...