节点 http-proxy 和 express [英] Node http-proxy and express
本文介绍了节点 http-proxy 和 express的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试做这样的事情:
I'm trying to do something like this:
// Setup prox to handle blog requests
httpProxy.createServer({
hostnameOnly: true,
router: {
'http://localhost': '8080',
'http://localhost/blog': '2368'
}
}).listen(8000);
以前我用过这个:
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
基本上,我仍然想使用 express...但是,当人们访问 http://localhost/blog
时,会被带到博客,但仍然通过 8080 端口提供服务
(最终将是端口 80)
Basically, I want to still use express... but, when people go to http://localhost/blog
get taken to the blog but still be served over port 8080
(which will eventually be port 80)
所以我把它换成了这个,效果更好.问题是快递接管了路由(据我所知)
So I switched it to this and it worked better. The problem is that express takes over the routing (from what I can tell)
var options = {
// pathnameOnly: true,
router: {
'localhost': 'localhost:8080',
'localhost/blog': 'localhost:2368'
}
}
// Setup prox to handle blog requests
var proxyServer = httpProxy.createServer(options);
proxyServer.listen(9000);
require('./app/server/router')(app);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
推荐答案
在 express 中使用 http-proxy 1.0:
Using http-proxy 1.0 with express:
var httpProxy = require('http-proxy');
var apiProxy = httpProxy.createProxyServer();
app.get("/api/*", function(req, res){
apiProxy.web(req, res, { target: 'http://google.com:80' });
});
这篇关于节点 http-proxy 和 express的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文