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 相关文章推荐
js 数组的for循环到底应该怎么写?
May 31 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
Nov 14 Javascript
node.js中的path.isAbsolute方法使用说明
Dec 08 Javascript
15个jquery常用方法、小技巧分享
Jan 13 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
利用jQuery对无序列表排序的简单方法
Oct 16 Javascript
javascript 网页进度条简单实例
Feb 22 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
Apr 29 Javascript
angular 服务随记小结
May 06 Javascript
vue-cli webpack配置文件分析
May 20 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 Javascript
JavaScript选择器函数querySelector和querySelectorAll
Nov 27 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
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
浅说js变量
2011/05/25 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
Python3中的真除和Floor除法用法分析
2016/03/16 Python
python装饰器实例大详解
2017/10/25 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
日语翻译个人求职的自我评价
2013/10/14 职场文书
高中政治教学反思
2014/01/18 职场文书
幼儿园秋游感想
2014/03/12 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
财务审计整改报告
2014/11/06 职场文书
2014年司法所工作总结
2014/11/22 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python