如何将数组作为数据从 angular 发送到 express 路由器?

How to send array as data to express router from angular?

我正在尝试从数据库中获取一些 ID 的更多详细信息,但我一直无法弄清楚该怎么做。

这是项目的数组:

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);
  }

我之前尝试过对数据进行 GET 请求,但没有成功。我不断从 express 收到 404 错误。所以,我尝试了 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();
});

注意: Express 路由器使用 axios 进一步 post。这是 post 到 RPlumber API。请无视这部分。我只是在使用数据和参数表达路由器时遇到了问题。

如果 baseURL 已经包含 \,那么您可能在 express 路由器中缺少 \。在 member-details 之前您可能需要它,

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

注意 post url 中的 /