簡體   English   中英

使用Node JS和Express創建Web代理

[英]Creating web proxy using node js and express

我正在嘗試使用JavaScript創建個人Web代理,以便用戶可以通過網站瀏覽互聯網。 示例http://webproxy.to/

我正在嘗試使用管道請求將響應從url發送回用戶,但是由於html使用的是相對url,因此它不會加載圖像。 如何更改鏈接,使其使用該頁面的絕對URL?

app.get('/:url', function (req, res) {
  var url = req.params.url;
  request('https://www.google.com', function (error, response, html) {
    if (!error && response.statusCode == 200) {
      req.pipe(request('https://www.google.com')).pipe(res);
    }
  });
});

我認為管道在這種情況下不可用,您必須進行修改。 嘗試使用如下形式:

const jsdom = require("jsdom");
const { JSDOM } = jsdom;

app.get('/:url', function (req, res) {
  var url = req.params.url;
  request(url, function (error, response, html) {    
    if (!error && response.statusCode == 200) {
      const dom = new JSDOM(html);
      const links = dom.window.document.querySelector('a');
      for(let i = 0; i < links.length; i++) {
         if (!/http/.test(links[i].href) && !/mailto/.test(links[i].href)) {
           links[i].href = `http://${url}${links[i].href}`;
         }
      }
      res.send(dom.serialize());
    }
  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM