无法在防火墙后面进行服务器端axios api调用

时间:2017-01-09 16:06:34

标签: node.js express mean-stack axios

我正在调查axios,以便在公司防火墙内部使用一些node.js http调用API - 而且我在第一道障碍中摔倒了。

我找到了一个使用axios在

下面进行服务器http调用的示例
data-bla

但是当我在防火墙后面时,我得到一个错误

  

// http://localhost:3000/api/posts

     

{
  “代码”:“ENOTFOUND”,
  “errno”:“ENOTFOUND”,
  “系统调用”:“getaddrinfo”,
  “hostname”:“http://proxy.com”,
  “主持人”:“http://proxy.com”,
  “港口”:8080,
  “config”:{       “transformRequest”:{

const axios = require('axios');
const API = 'https://jsonplaceholder.typicode.com';

/* GET api listing. */
router.get('/', (req, res) => {
  res.send('api works');
});

// Get all posts
router.get('/posts', (req, res) => {
  // Get posts from the mock api
axios.get(`${API}/posts`, { proxy: { host: 'http://proxy.com', port: 8080}})
//axios.get(`${API}/posts`)
    .then(posts => {
      res.status(200).json(posts.data);
    })
    .catch(error => {
      res.status(500).send(error)

    });
});
module.exports = router;

当我切换到直接连接到互联网并且代理设置是我用于npm的时候它找不到 - 我不确定最终解决方案是在防火墙内部还是外部但是我无法想象出去做这个特定于这个api甚至全球只是为了开发..任何帮助将不胜感激..

1 个答案:

答案 0 :(得分:0)

我相信axios只需要代理配置中的主机,而不是带协议的URL:

"proxy": {
  "host": "proxy.com",
  "port": 8080
}