教你如何使用node.js制作代理服务器


Posted in Javascript onNovember 26, 2014

下面代码实现的功能是这样的:

首先创建一个HTTP服务器,当服务器接收到客户端的请求后,向"www.taobao.com"网站请求数据,当从该网站接受到的响应数据后,将响应数据发送给客户端.

var http=require("http");

var url=require("url");

var server=http.createServer(function(sreq,sres){

    var url_parts=url.parse(sreq.url);

    var opts={

        host:"www.taobao.cn",

        port:80,

        path:url_parts.pathname,

        headers:sreq.headers

    };

    var creq=http.get(opts, function (cres) {

        sres.writeHead(cres.statusCode,cres.headers);

        cres.pipe(sres);

    });

    sreq.pipe(creq);

});

server.listen(1337,"127.0.0.1", function () {

    console.log("开始监听"+server.address().port+"......");

});

运行代码后,在浏览器端运行程序:

教你如何使用node.js制作代理服务器

发现没有,界面是淘宝的官网,但是地址确实变成我们本地的了.

是不是很好玩的样子呢,其实node.js可以做很多的事情,小伙伴们自己去开发吧。

Javascript 相关文章推荐
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
javascript preload&lazy load
May 13 Javascript
Javascript拓展String方法小结
Jul 08 Javascript
js图片自动轮播代码分享(js图片轮播)
May 06 Javascript
原生JavaScript生成GUID的实现示例
Sep 05 Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 Javascript
Node.js学习之地址解析模块URL的使用详解
Sep 28 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 Javascript
layui select获取自定义属性方法
Aug 15 Javascript
ES6小技巧之代替lodash
Jun 07 Javascript
微信小程序开发技巧汇总
Jul 15 Javascript
浅析node.js中close事件
Nov 26 #Javascript
node.js超时timeout详解
Nov 26 #Javascript
node.js+Ajax实现获取HTTP服务器返回数据
Nov 26 #Javascript
使用node.js 获取客户端信息代码分享
Nov 26 #Javascript
node+express+jade制作简单网站指南
Nov 26 #Javascript
JS简单操作select和dropdownlist实例
Nov 26 #Javascript
node+express+ejs制作简单页面上手指南
Nov 26 #Javascript
You might like
PHP中的float类型使用说明
2010/07/27 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
php实现微信支付之现金红包
2018/05/30 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
用Python进行基础的函数式编程的教程
2015/03/31 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
2018/10/31 Python
python3.7 的新特性详解
2019/07/25 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
如何查看python关键字
2021/01/17 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
Java中实现多态的机制是什么?
2014/12/07 面试题
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
遗嘱继承公证书
2014/04/09 职场文书
空乘英文求职信
2014/04/13 职场文书
Django 如何实现文件上传下载
2021/04/08 Python