如何将请求从Express服务器发送到另一台服务器?

时间:2019-08-12 12:59:38

标签: javascript node.js reactjs typescript express

我正在尝试从另一台外部服务器从Express服务器获取数据。

那是搜索api,它是发布请求,我来自客户端,可以获取主体参数。

然后尝试在另一个服务器上发送该参数: http://search-api.com/d/explore?

public static async search(req: Express.Request, res: Express.Response) {
    try {
      const data = await axios.post(
        `http://search-api.com/d/explore?user_id=${
          req.body.id
        }`,
        {
          query: req.body.query,
          topics: req.body.topics
        }
      );

      res.send(data);
    } catch (err) {
      ErrorHandler.handle('Error fetching search response.', err, res);
    }
  }

这是响应错误:

  

[错误]默认-“获取搜索响应时出错”。   错误:请求失败,状态码为422

我当时检查参数是否存在,并且还可以。

有人知道这里可能是什么问题吗?

已更新

这是请求正文的外观: enter image description here

1 个答案:

答案 0 :(得分:0)

可能您一开始就忘记了http://协议;另外,您使用的是wwww而不是www,但我认为那里只是伪文本:

public static async search(req: Express.Request, res: Express.Response) {
try {
  const data = await axios.post(
    `http://www.search-api.com/d/explore?user_id=${
      req.body.id
    }`,
    {
      query: req.body.query,
      topics: req.body.topics
    }
  );

  res.send(data);
 } catch (err) {
   ErrorHandler.handle('Error fetching search response.', err, res);
 }
}
相关问题