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 相关文章推荐
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
Jun 05 Javascript
JS验证身份证有效性示例
Oct 11 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
May 02 Javascript
javascript简单比较日期大小的方法
Jan 05 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
Jul 09 Javascript
功能强大的Bootstrap效果展示(二)
Aug 03 Javascript
javascript实现Java中的Map对象功能的实例详解
Aug 21 Javascript
vue编译打包本地查看index文件的方法
Feb 23 Javascript
jquery图片预览插件实现方法详解
Jul 18 jQuery
vue实现Input输入框模糊查询方法
Jan 29 Javascript
Js和VUE实现跑马灯效果
May 25 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
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
php curl发送请求实例方法
2019/08/01 PHP
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
JS验证全角与半角及相互转化的介绍
2017/05/18 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
用VsCode编辑TypeScript的实现方法
2020/05/07 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
对Python3使运行暂停的方法详解
2019/02/18 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
Python tkinter实现日期选择器
2021/02/22 Python
耐克美国官网:Nike.com
2016/08/01 全球购物
如何写一个自定义标签
2012/12/28 面试题
七一党建活动方案
2014/01/28 职场文书
网上卖盒饭创业计划书范文
2014/02/07 职场文书
小组合作学习反思
2014/02/18 职场文书
职员竞岗演讲稿
2014/05/14 职场文书
2014最新离职证明范本
2014/09/12 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
MySQL 开窗函数
2022/02/15 MySQL
python获取带有返回值的多线程
2022/05/02 Python