Eri*_*ric 4 javascript node.js express
我正在编写一个express.js应用程序,并希望提供来自另一台服务器的某些路由。
Express提供一些以开头的路线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);
}
Run Code Online (Sandbox Code Playgroud)
我尝试搜索“代理请求表达”,但是我不确定代理是否是我所做工作的准确术语。如果这个主题有更好的用词,或者我想完成什么,请告诉我。
您可以使用express-http-proxy。
是的,代理是您正在寻找的准确术语。正如API所暗示的那样,它将在请求的下面转发到另一个URL。
这是一个示例用法:
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
}
}))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2886 次 |
| 最近记录: |