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 相关文章推荐
jQuery autocomplate 自扩展插件、自动完成示例代码
Mar 28 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
Jan 24 Javascript
JavaScript实现表格快速变色效果代码
Aug 19 Javascript
全屏js头像上传插件源码高清版
Mar 29 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
Sep 05 Javascript
JS之相等操作符详解
Sep 13 Javascript
微信小程序 教程之注册页面
Oct 17 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
Jun 19 Javascript
基于VUE实现的九宫格抽奖功能
Sep 30 Javascript
在vue项目中使用sass语法问题
Jul 18 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
Jul 30 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
Feb 05 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
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
豆瓣网的jquery代码实例
2008/06/15 Javascript
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
Jquery $.map使用方法实例详解
2020/09/01 jQuery
python中join()方法介绍
2018/10/11 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
python tkinter控件布局项目实例
2019/11/04 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
智能电子应届生求职信
2013/11/10 职场文书
英文导游欢迎词
2014/01/11 职场文书
经济类毕业生求职信
2014/06/26 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
2014年部门工作总结
2014/11/12 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
创业计划书之熟食店
2019/10/16 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
python基础之错误和异常处理
2021/10/24 Python