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 相关文章推荐
用javascript获取地址栏参数
Dec 22 Javascript
JS图片无缝滚动(简单利于使用)
Jun 17 Javascript
让table变成exls的示例代码
Mar 24 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
May 05 Javascript
Javascript MVC框架Backbone.js详解
Sep 18 Javascript
JS动态添加选项案例分析
Oct 17 Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
Nov 27 Javascript
浅析Angular19 自定义表单控件
Jan 31 Javascript
深入解析ES6中的promise
Nov 08 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
Feb 28 Javascript
加速vue组件渲染之性能优化
Apr 09 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 防注入函数(格式化数据)
2011/08/08 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
ThinkPHP模型详解
2015/07/27 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
js 多浏览器分别判断代码
2010/04/01 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
selenium如何定位span元素的实现
2021/01/13 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
如何进行有效的自我评价
2013/09/27 职场文书
个人实用简单的自我评价
2013/10/19 职场文书
医学实习生自我鉴定
2013/12/12 职场文书
爽歪歪广告词
2014/03/20 职场文书
导游个人求职信范文
2014/03/23 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
信仰纪录片观后感
2015/06/08 职场文书
三严三实·严以修身心得体会
2016/01/15 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android