Я хочу, чтобы мой URL содержал строки запроса и заставлял их использовать фильтры со стороны сервера. Но независимо от того, что я делаю, я всегда получаю или пустой объект - когда я пытаюсь сделать console.log "req.query" или неопределенным, если я пытаюсь указать console.log "req.query.test" (url будет http://localhost:3000/products?test=1)
Мой контроллер:
exports.index = function (req, res) {
console.log(req.query.test) //gives me undefined
Category.find({}).then((categories) => {
res.send(categories)
});
}
Маршруты:
const express = require('express');
const router = express.Router();
const category_controller = require("../../controllers/categoryController");
router.get('/', category_controller.index);
router.get('/:id', category_controller.show);
router.post('/', category_controller.create);
router.put('/:id', category_controller.update);
router.delete('/:id', category_controller.delete);
module.exports = router;
И файл app.js
app.use('/api/v1/categories', passport.authenticate('jwt', { session: false }), categories)
Это то, что консоль возвращает
OPTIONS /api/v1/categories 204 2.772 ms - 0
undefined
GET /api/v1/categories 304 69.694 ms - -
ОБНОВЛЕНИЕ: с помощью почтальона это работает. Но когда я использую браузер, он возвращает неопределенное значение.
Очистка кэша не работает.
Я думаю, что это проблемас OPTIONS, так как он вызывается перед GET.
OPTIONS /api/v1/categories 204 8.938 ms - 0
undefined
GET /api/v1/categories 304 104.363 ms - -
в то время как в почтальоне, OPTIONS не вызывается
1 . // http://...?test=1
GET /api/v1/categories?test=1 200 113.413 ms - 541
Кто-нибудь знает, как решить эту проблему? или еслиЯ могу избавиться от опций звонка?