教你如何使用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 parsefloat parseint 转换函数
Jan 21 Javascript
JS中toFixed()方法引起的问题如何解决
Nov 20 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
Jun 05 Javascript
jCallout 轻松实现气泡提示功能
Sep 22 Javascript
alert和confirm功能介绍
May 21 Javascript
jquery获取选中的文本和值的方法
Jul 08 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
js实现炫酷的左右轮播图
Jan 18 Javascript
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
原生js实现日期选择插件
May 21 Javascript
使用JavaScript通过前端发送电子邮件
May 22 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
Jul 19 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 mssql 日期出现中文字符的解决方法
2009/03/10 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
2014/12/26 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
axios拦截设置和错误处理方法
2018/03/05 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
python的正则表达式re模块的常用方法
2013/03/09 Python
python解析xml文件实例分析
2015/05/27 Python
python九九乘法表的实例
2017/09/26 Python
Sanic框架路由用法实例分析
2018/07/16 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
老总助理工作岗位职责
2014/02/06 职场文书
婚前保证书
2014/04/29 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
深入理解python协程
2021/06/15 Python
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
python获取字符串中的email
2022/03/31 Python
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js
Ruby处理CSV数据方法详解
2022/04/18 Ruby