Как передать объект в запрос GET? - PullRequest
1 голос
/ 27 апреля 2019

Привет! В настоящее время я пытаюсь передать объект в запрос GET для поискового фильтра в nodejs с помощью Express, но я получаю возврат 404 GET / route1 / search / [object% 20Object] 404 1,148 мс - 38

Я уже пытаюсь зарегистрировать результат в терминале, используя console.log (req.params.dataObject); или console.log (req.params.dataObject.option); но получить результат [Object, Object] или Undefined

router.get('/search/:dataObject',
 async function (req, res) {
    try {
      console.log(req.params.dataObject);
      res.status(200).json(searchPhone);
    } catch (err) {
      return res.status(404).json({
        error: err.message
      });
    }
  });

Я ожидаю, что результатом будет {опция: 'некоторые данные', ключевое слово: 'некоторые данные'}

1 Ответ

3 голосов
/ 27 апреля 2019

Вы не можете поместить объект в URL, не кодируя его каким-либо образом.Какой бы код ни вызывал ваш сервер, он пытается это сделать, а JavaScript преобразует объект в строку, откуда и берется [object Object].Это происходит до того, как ваш сервер когда-либо до него доберется.

Что вы, вероятно, должны делать вместо этого, это использовать строку запроса.Это стандартный способ передачи параметров ключ / значение.Например, ваш клиент будет звонить:

GET /search?option=some%20data&keyword=some%20data

Тогда на вашем сервере вы можете использовать:

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