Express req.query返回或为空对象或未定义

时间:2019-10-09 17:04:16

标签: express routing

我希望我的URL包含查询字符串,并让它们从后端使用过滤器。 但是无论我做什么,总会得到一个空对象或空对象-当我尝试console.log“ req.query”时还是未定义,如果我console.log“ req.query.test” (网址为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

有人知道如何处理此问题吗?还是可以摆脱期权电话?

0 个答案:

没有答案