教你如何使用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 相关文章推荐
js弹出模式对话框,并接收回传值的方法
Mar 12 Javascript
判断及设置浏览器全屏模式
Apr 20 Javascript
JS创建对象几种不同方法详解
Mar 01 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
Aug 03 Javascript
Vue过滤器的用法和自定义过滤器使用
Feb 08 Javascript
javascript闭包功能与用法实例分析
Apr 06 Javascript
Javascript Promise用法详解
May 10 Javascript
vue中的mvvm模式讲解
Jan 31 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 Javascript
开发中常用的25个JavaScript单行代码(小结)
Jun 28 Javascript
Vue实现剪贴板复制功能
Dec 31 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的加密方式及原理
2012/06/14 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
Laravel 连接(Join)示例
2019/10/16 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
require.js深入了解 require.js特性介绍
2014/09/04 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
深入了解JavaScript的逻辑运算符(与、或)
2016/12/20 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
python ip正则式
2009/05/07 Python
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
Python中文件操作简明介绍
2015/04/13 Python
Python实现针对中文排序的方法
2017/05/09 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
解决PyCharm不运行脚本,而是运行单元测试的问题
2019/01/17 Python
实例详解Python模块decimal
2019/06/26 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
审核会计岗位职责
2013/11/08 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
总结Python常用的魔法方法
2021/05/25 Python
详解Laravel制作API接口
2021/05/31 PHP