Node.js:Proxy网站如何处理相关的Url?

我在Node中创build了一个相对简单的代理,它允许我下载页面并显示它们。 这很好,虽然一些脚本链接表单图像似乎被打破,因为它们指向相关的文件。 作为一个项目,我试图创build一个function齐全的Web代理。

像Proxify这样的网站如何解决这个问题?

scheme供参考:

var app = require('express').createServer(); var request = require('request'), sys = require('sys'), fs=require('fs'); app.get('/url', function(req, res){ console.log(req.query.link); request({ uri: req.query.link, headers: {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0"} }, function (error, response, body) { if (error && response.statusCode !== 200) { console.log('Error when contacting google.com') } res.send(body, {"Content-type": "text/html"}); res.end(); }); }); 

现在你的代码只能代理html文件,而客户端则直接从真实站点获取其余的内容。 你会希望使用类似于jQuery的东西来replace文档中的所有src / href,以使它们通过你的代理,同时你可以检查它们是否相对,如果它们是前面的url然后创build你的代理url。