如何在节点js中创建代理?

时间:2014-02-20 06:25:15

标签: javascript node.js express

我想在节点js中创建代理。我的要求是:

当用户从浏览器转到url'mydata.mywebsite.com'时,它应该从'localhost:3000'获取数据并在页面上显示。

我不想重定向,意味着用户和浏览器应该看到响应来自'mydata.mywebsite.com',因此网址应保留为'mydata.mywebsite.com'。

编辑: 谷歌上的所有链接都有助于为localhost域创建代理。 我想为一些不是localhost的自定义域创建代理服务器(但是在本地计算机上作为虚假服务器运行)。

简单来说,我想制作一个域名为“mydata.mywebsite.com”的虚假服务器,它实际上是为运行在3000端口上的本地主机服务器提供所有请求。一切都在客户端机器上完成。是不是可以在nodejs。??

1 个答案:

答案 0 :(得分:3)

您需要的一切都在核心http module中。看看request module以及

var http = require('http');

http.createServer(function(req, res) {
  if (req.headers.host == 'mydata.mywebsite.com') {
    req.pipe(http.request({
      host: 'localhost',
      port: 3000,
      path: req.url,
      method: req.method
    })).pipe(res);
  }
}).listen(80);

此处http.request启动下游请求。 req.pipe向其发送数据,.pipe(res)消耗回复。这是可能的,因为http请求和响应对象都是节点streams