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精华代码集
Jan 24 Javascript
JavaScript 字符串与数组转换函数[不用split与join]
Dec 13 Javascript
jquery拖动插件(jquery.drag)使用介绍
Jun 18 Javascript
javascript中cookie对象用法实例分析
Jan 30 Javascript
web 屏蔽BackSpace键实例代码
Dec 24 Javascript
js下载文件并修改文件名
May 08 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
Nov 17 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
May 28 Javascript
layui实现点击按钮给table添加一行
Aug 10 Javascript
微信小程序新手教程之页面打开数量限制
Mar 03 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
Sep 11 Javascript
浅谈vuex中store的命名空间
Nov 08 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基础知识:类与对象(5) static
2006/12/13 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
使用JS动态显示文本
2017/09/09 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
Python中的TCP socket写法示例
2018/05/11 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
2014小学语文教师个人工作总结
2014/12/03 职场文书
股权转让协议范本
2014/12/07 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
Java后台生成图片的完整步骤
2021/08/04 Java/Android
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript