我正在编写一个express.js应用程序,并希望从另一个服务器为某些路由服务。
特快专递提供一些从api.example.com/v1/*开始的航线。我希望从/ad/hoc/开始的任何路径都被转发到另一个服务器,并且由Express提供的响应,例如,api.example.com/ad/hoc/endpoint.php将被管道传输到grampas-lamp-stack.example.com/ad/hoc/endpoint.php。
我可以用res.redirect实现这一点,但是我想通过我的Express应用程序来流响应,并且避免将浏览器重定向到另一个IP地址。
app.js
var express = require('express');
var app = express();
app.get('/v1/users/:id', UserCtrl.get);
app.get('/v1/users/search', UserCtrl.search);
app.get('/ad/hoc/*', function(req, res) {
res.redirect('http://grampas-lamp-stack.example.com' + req.url);
}我尝试搜索“代理请求表示”,但我不确定代理是否是我正在做的事情的准确术语。如果有一个更好的词来形容这个话题或我想要完成的事情,请告诉我。
发布于 2016-06-23 19:05:04
您可以使用express-http-proxy。
是的,代理是你所要寻找的东西的准确术语。它将在下面将请求转发到另一个url,正如API也将暗示的那样。
下面是一个示例用法:
var proxy = require('express-http-proxy');
var app = require('express')();
app.use('/route/you/want/proxied', proxy('proxyHostHere', {
forwardPath: function (req, res) {
return '/path/where/you/want/to/proxy/' + req.url
}
}))https://stackoverflow.com/questions/37999688
复制相似问题