node.js中 stream使用教程


Posted in Javascript onAugust 28, 2016

这些日子跑去学了一下OC,但是还没有学成。离转行的时间还有很长,顺便回顾一下node的知识。

每种语言来来去去的人很多,但我就离不开node。我并不是使用它开发,只是使用js相对多一些,因此还是研究node比较好,stream在node的地位是很高的。闲时也来看看这个内容,在node的路上,我还是新手。

今天下载了nodeschool的课程看,其中有一个例子。(我修改了一点点)

var concat = require('concat-stream');
var http = require('http');
var qs = require('querystring');

  var server = http.createServer(function (req, res) {
    if (req.method === 'POST') {
      req.pipe(concat(function (body) {
        body = qs.parse(body.toString())
        res.end(Object.keys(body).join('\n')); 
      }));
    }
    else res.end();
  });
  server.listen(5000);

这题的意思是,让你把post数据反转,我就不做了,原理是一样的,只是需求不同。我们利用concat这个插件,当表单提交时,就把数据流导向concat,这个例子是取from表单post的数据。

为了测试,我使用request库。

var request = require(‘request')
request.post(‘ http://127.0.0.1:5000 ‘, {form:

{

“name”: “ryan”,

“age” : 23

}

}, function(err,res,body){

console.log(‘接收成功:')

console.log(res[‘body']) // name age

})

启动server,然后运行测试,可以看到我们把这个对象post过去了。concat-stream这个模块主要是做buffer的连接,我的理解是,当你以buffer的形式传输,这样就可以传输任何的类型了,在npmjs,它传输的是一个图片,由于我们接收完之后,就得到了这个图片的数据,我们就可以利用这个做上传,复制,道理都相通的。

Javascript 相关文章推荐
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
Apr 17 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
Sep 04 Javascript
js 调用百度分享功能
Feb 27 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
vue 2.0组件与v-model详解
Mar 27 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 jQuery
用最少的JS代码写出贪吃蛇游戏
Jan 12 Javascript
深入理解Node module模块
Mar 26 Javascript
jQuery.validate.js表单验证插件的使用代码详解
Oct 22 jQuery
VUE脚手架的下载和配置步骤详解
Apr 01 Javascript
layui table去掉右侧滑动条的实现方法
Sep 05 Javascript
使用Node.js实现base64和png文件相互转换的方法
Mar 11 Javascript
ionic组件ion-tabs选项卡切换效果实例
Aug 27 #Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
Aug 27 #Javascript
ionic实现带字的toggle滑动组件
Aug 27 #Javascript
ionic实现可滑动的tab选项卡切换效果
Apr 15 #Javascript
ionic实现滑动的三种方式
Aug 27 #Javascript
js select实现省市区联动选择
Apr 17 #Javascript
轻松掌握JavaScript装饰者模式
Aug 27 #Javascript
You might like
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
php实现异步数据调用的方法
2015/12/24 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
document.documentElement && document.documentElement.scrollTop
2007/12/01 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
jupyter 导入csv文件方式
2020/04/21 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
办公室文员岗位职责范本
2014/06/12 职场文书
公司更名通知函
2015/04/24 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL