教你如何使用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 相关文章推荐
Riot.js 快速的JavaScript单元测试框架
Nov 09 Javascript
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
浅析js中2个等号与3个等号的区别
Aug 06 Javascript
JavaScript中reduce()方法的使用详解
Jun 09 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
May 10 Javascript
jquery+css3问卷答题卡翻页动画效果示例
Oct 26 Javascript
基于jquery实现的鼠标悬停提示案例
Dec 11 Javascript
JavaScript实现经典排序算法之插入排序
Dec 28 Javascript
js实现日历与定时器
Feb 22 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
Dec 02 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
Jul 19 Javascript
JS简易计算器实例讲解
Jun 30 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
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
splice slice区别
2006/10/09 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
javascript数组输出的两种方式
2015/01/13 Javascript
js实现图片从左往右渐变切换效果的方法
2015/02/06 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
js实现自定义路由
2017/02/04 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
Python多线程实现同步的四种方式
2017/05/02 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
2014年情人节活动方案
2014/02/16 职场文书
体育节口号
2014/06/19 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
加薪通知
2015/04/25 职场文书
Python序列化与反序列化相关知识总结
2021/06/08 Python