Как отправить массив в виде данных на экспресс-маршрутизатор из angular?

#angular #express #router

#angular #экспресс #маршрутизатор

Вопрос:

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

Вот массив элементов:

 var memberIds = ["2892056", "2894544", "2894545", "2894548", "2894550", "2894553", "2894555"];
var teamId = '123434';
var categoryId = 6;

// POST  from angular
getMembersDetail(teamId, categoryId, memberIds) {

    let params = teamId   '/'   categoryId;

    return this.http.post(baseURL   'member-details/'   params, memberIds);
  }
  

Ранее я пытался получить запрос с данными, но не сработало. Я продолжал получать ошибку 404 от express. Итак, я попробовал POST-запрос, но это также выдает ошибку 404.

Затем в экспресс:

 router.post('member-details/:teamId/:categoryId', function(req, res){

  const getMemberDetails = async() => {
    try{
      const categoryId = req.params.categoryId;
      const teamId = req.params.teamId;
      const memberIds = req.body;
      const config = {
        header: {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
      };

      var url = baseUrl   'member-details/'   teamId   '/'   categoryId   '/';

      const response = await axios.post(url, memberIds, config);

      res.send(respose.data);

    } catch {
      res.status(error.response.status).send(error.response.data);
    };
  }
  getMemberDetails();
});
  

ПРИМЕЧАНИЕ: Экспресс-маршрутизатор использует axios для создания дальнейшей публикации. Это сообщение R и Plumber API. Пожалуйста, не обращайте внимания на эту часть. У меня возникли проблемы только с получением экспресс-маршрутизатора с данными и параметрами.

Комментарии:

1. Проверьте сеть и посмотрите на маршрут, какой у вас baseUrl ? Вы уверены, что вам не нужно добавлять ‘/’ после baseUrl ? this.http.post(baseURL '/member-details/' params, memberIds);

2. да, baseUrl в порядке. это тот, который я использую для других маршрутов, и все они работают, кроме этого. Я уже добавил предыдущий / в baseUrl для простоты.

Ответ №1:

Если baseURL уже содержит , то, возможно, вам не хватает a в экспресс-маршрутизаторе. Возможно, вам это понадобится до вашего member-details подобного,

 router.post('/member-details/:teamId/:categoryId', function(req, res)
  

обратите внимание на a / в URL-адресе сообщения.