2017-01-09 127 views
1

我正在研究axios以便在corp防火墙内部使用某些node.js http调用API--并且我在第一个障碍中倒下了。不能让服务器端的axios api在防火墙后面调用

我发现,使用爱可信做以下

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; 

服务器HTTP调用一个例子,但,当我在防火墙后面,我得到以下

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

错误

{
“code”:“ENOTFOUND”,
“errno”:“ENOTFOUND”,
“系统调用”: “的getaddrinfo”
“主机名”: “http://proxy.com
“宿主”: “http://proxy.com
“端口”:8080,
“配置”:{ “transformRequest”:{

}, 
"transformResponse": { 

}, 
"timeout": 0, 
"xsrfCookieName": "XSRF-TOKEN", 
"xsrfHeaderName": "X-XSRF-TOKEN", 
"maxContentLength": -1, 
"headers": { 
    "Accept": "application/json, text/plain, */*", 
    "User-Agent": "axios/0.15.3", 
    "host": "jsonplaceholder.typicode.com" 
}, 
"method": "get", 
"proxy": { 
    "host": "http://proxy.com", 
    "port": 8080 
}, 
"url": "https://jsonplaceholder.typicode.com/posts" 

它工作时,我切换到直接连接到互联网,代理设置是什么我用NPM发现 - 我不知道最终的解决方案将是内部或防火墙外部但我不知道要做这个具体到这个api甚至glob盟友只是用于开发..任何帮助将不胜感激..

回答

0

我相信,爱可信只想在代理配置主机,不与协议的网址:

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