var express = require('express');
var request = require('request'); var app = express(); app.use('/', function(req, res) { var url = 'https://www.baidu.com/' + req.url; req.pipe(request(url)).pipe(res); }); app.listen(process.env.PORT || 3000);
不到 10 行的代码,就实现了简单的代理服务器功能。是不是很神奇?
熟悉 Node.js 的话应该很容易看明白这几行代码。首先加载 express
模块,这个是创建 HTTP 服务器的一个流行框架。然后是 request
,它封装了 HTTP 请求的各种方法,让发起请求变得非常容易。接下来实例化一个 express
对象,设置访问路由。最后监听 3000 端口。
先看效果。保存上述代码到文件 proxy.js
,在文件所在路径执行:
node proxy.js
用浏览器打开http://localhost:3000/
关键代码在路由处理方法内。
req.pipe(request(url)).pipe(res);