我使用Express.JS / Node托管我的网络服务器。它工作正常,使用这个:
var request = require('request');
var app = express();
var server = app.listen(8090, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Express server listening at http://%s:%s', host, port);
});
我可以导航到localhost:8090
并启动我的网站。
我还使用php -S localhost:8088
启动后端服务器。
这很好,我可以将api调用为localhost:8088/api/auth/check
并返回我的测试值。
但是,我试图从我的网站上调用它,并继续使用端口8090.(AJAX with url:' /api/auth/check
')
我以为我可以使用以下方法管道请求:
var apiUrl = process.env.apiUrl || 'http://localhost:8088/api';
app.use('/api', function(req, res) {
var url = apiUrl + req.url;
req.pipe(request(url)).pipe(res);
});
它不起作用 - 我得到一个ErrorConnectionRefused,我的chrome开发人员工具网络标签显示http://localhost:8090/api/auth/check
。
最奇怪的是,这确实以前工作 - 网络选项卡显示localhost:8090和api调用,但具体说主机名localhost:8088 - 我可以预览显示测试值的响应开发者控制台我也可以通过URL导航到http://localhost:8090/api/auth/check
,它给出了正确的答案。
我错过了一些明显的东西吗?