教你如何使用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 相关文章推荐
javascript编程起步(第二课)
Jan 10 Javascript
深入理解JavaScript 闭包究竟是什么
Apr 12 Javascript
js中parseInt函数浅谈
Jul 31 Javascript
JS实现的车标图片提示效果代码
Oct 10 Javascript
Webpack 实现 AngularJS 的延迟加载
Mar 02 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
Oct 14 Javascript
微信小程序 wxapp内容组件 progress详细介绍
Oct 31 Javascript
JavaScript实现的商品抢购倒计时功能示例
Apr 17 Javascript
JS计算两个时间相差分钟数的方法示例
Jan 10 Javascript
微信小程序调用微信支付接口的实现方法
Apr 29 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
May 13 Javascript
Vue路由切换页面不更新问题解决方案
Jul 10 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中函数内引用全局变量的方法
2008/10/20 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
Python datetime时间格式化去掉前导0
2014/07/31 Python
python实现给字典添加条目的方法
2014/09/25 Python
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
Django中几种重定向方法
2015/04/28 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
python文本数据处理学习笔记详解
2019/06/17 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
Python的collections模块真的很好用
2021/03/01 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
女方回门宴答谢词
2014/01/14 职场文书
授权委托书样本
2014/09/25 职场文书
构建和谐校园倡议书
2015/01/19 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
Vue图片裁剪组件实例代码
2021/07/02 Vue.js
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android