教你如何使用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 相关文章推荐
ajax异步刷新实现更新数据库
Dec 03 Javascript
JQuery触发radio或checkbox的change事件
Dec 18 Javascript
Node.js和PHP根据ip获取地理位置的方法
Mar 14 Javascript
jQuery中height()方法用法实例
Dec 24 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
js实现的简单图片浮动效果完整实例
May 10 Javascript
JavaScript中的对象继承关系
Aug 01 Javascript
node.js部署之启动后台运行forever的方法
May 23 Javascript
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
前后端如何实现登录token拦截校验详解
Sep 03 Javascript
vue中进行微博分享的实例讲解
Oct 14 Javascript
vue+Element中table表格实现可编辑(select下拉框)
May 21 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中的类型提示(type hinting)功能介绍
2015/07/01 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
PHP自定义错误用法示例
2016/09/28 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
keras实现多种分类网络的方式
2020/06/11 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
css sprite简单实例
2016/05/23 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
党干部专题民主生活会对照检查材料思想汇报
2014/10/06 职场文书
财务检查整改报告
2014/11/06 职场文书
法定代表人身份证明书
2015/06/18 职场文书
电台广播稿范文
2015/08/19 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
mysql查看表结构的三种方法总结
2022/07/07 MySQL