文档章节

微信小程序 Node.js (基础七) Stream(流)

第九程序
 第九程序
发布于 2017/07/10 11:16
字数 548
阅读 8
收藏 0
点赞 0
评论 0

微信小程序 Node.js (基础七) Stream(流)具体操作教程:

Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。 
Stream 有四种流类型: 
- Readable - 可读操作。 
- Writable - 可写操作。 
- Duplex - 可读可写操作. 
- Transform - 操作被写入数据,然后读出结果。 

Stream 对象都是 EventEmitter 的实例。常用的事件有: 
- data - 当有数据可读时触发。 
- end - 没有更多的数据可读时触发。 
- error - 在接收和写入过程中发生错误时触发。 
- finish - 所有数据已被写入到底层系统时触发。

读取

var fs = require("fs")
var data= ""

var readerStreama = fs.createReadStream("input.txt")
readerStreama.setEncoding('UTF8')

readerStreama.on("data",function(chunk){
data+= chunk;
})

readerStreama.on("end",function(){
    console.log(data);
})

readerStreama.on("error",function(err){
console.log(err.stack)
})

console.log("程序执行完成")
  •  

写入

var fs = require("fs");
var data = 'www.csdn.net';

// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');

// 使用 utf8 编码写入数据
writerStream.write(data,'UTF8');

// 标记文件末尾
writerStream.end();

// 处理流事件 --> data, end, and error
writerStream.on('finish', function() {
    console.log("写入完成。");
});

writerStream.on('error', function(err){
   console.log(err.stack);
});

console.log("程序执行完毕");
  •  

管道流

var fs = require("fs");

// 创建一个可读流
var readerStream = fs.createReadStream('input.txt');

// 创建一个可写流
var writerStream = fs.createWriteStream('output.txt');

// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);

console.log("程序执行完毕");
  •  

链式流

链式是通过连接输出流到另外一个流并创建多个对个流操作链的机制。链式流一般用于管道操作。

压缩

var fs = require("fs");
var zlib = require('zlib');

// 压缩 input.txt 文件为 input.txt.gz
fs.createReadStream('input.txt')
  .pipe(zlib.createGzip())
  .pipe(fs.createWriteStream('input.txt.gz'));

console.log("文件压缩完成。");
  •  

解压缩

var fs = require("fs");
var zlib = require('zlib');

// 解压 input.txt.gz 文件为 input.txt
fs.createReadStream('input.txt.gz')
  .pipe(zlib.createGunzip())
  .pipe(fs.createWriteStream('input.txt'));

console.log("文件解压完成。");
  •  

微信小程序 Node.js (基础八) exports模块系统

一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。

// main.js
var hello = require("./hello")
hello.sayHi()
  •  
// hello.js
exports.sayHi  = function(){
    console.log("Hello World")
}
  •  

// 将对象封装到模块中

function sayHi(){
    this.hi = function(){
        console.log("Hello World")  
    }
}
module.exports = sayHi
  •  
var Hello = require("./hello")
var hello = new Hello()
hello.hi()

© 著作权归作者所有

共有 人打赏支持
第九程序
粉丝 84
博文 142
码字总数 172691
作品 0
厦门
程序员
异步通信组件hprose在微信小程序中的使用例子

网上搜索了在微信小程序中的使用,基本都是最老的版本 目前在新版中无法使用 现在写一个例子 第一步: 准备好一个hprose的服务端,什么语言的都行,我这里使用的是nodejs版本的 我进入开源的官方...

MrInsight
05/28
0
0
Vue与小程序的结合(mpVue)

初始化一个 mpvue 项目 现代前端开发框架和环境都是需要 Node.js 的,如果没有的话,请先下载 nodejs 并安装。 然后打开命令行工具: 随着运行成功的回显之后,可以看到本地my-project文件夹...

Brighten_Sun
07/04
0
0
对战微信小程序,探究快应用的开发之路【一】

最近华为牵头国内几大厂商推出了Quikapp快应用,与微信小程序展开了入口之争,作为走在时代最前沿的程序猿,不了解一下,不动手操作一下,都对不起时代赋予我们的责任感了。来,跟我一起来探...

大王12
04/12
0
0
只需两步获取任何微信小程序源码

第一次在掘金这样高大上的社区写文章,忐忑地敲下我获取小程序源码过程中的经验分享。 最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了一个滴滴他们家的青桔单...

行无忌
05/31
0
0
分享几个微信小程序开发框架和工具

###【小程序开发框架】 1、官方框架MINA 小程序提供的开发框架为MINA框架,它类似于淘宝Weex、Vue框架。MINA框架通过封装微信客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能...

codeGoogle
04/18
0
0
alex1504/wx-guita_tab

微信小程序·口袋吉他 用微信扫描二维码预览 项目截图 项目地址 https://github.com/alex1504/wx-guitatab 功能说明 分页加载及可配置轮播图 吉他谱浏览及收藏数据统计 吉他谱收藏功能 搜索功...

alex1504
05/04
0
0
详解JavaScript之神奇的Object.defineProperty

摘要: JavaScript有个很神奇的Object.defineProperty(),了解一下? =与Object.defineProperty 为JavaScript对象新增或者修改属性,有两种不同方式:直接使用=赋值或者使用Object.definePr...

Fundebug
昨天
0
0
面试高级前端工程师必问之流-stream

流(stream)是一种在 Node.js 中处理流式数据的抽象接口。 stream 模块提供了一些基础的 API,用于构建实现了流接口的对象。 Node.js 提供了多种流对象。 例如,发送到 HTTP 服务器的请求和...

向雷²º¹⁷
07/10
0
0
微信小程序开发之配置node.js+npm

在windows下开发, 比较方便是使用cygwin. 但配置cygwin下可用的node.js+npm似乎不太容易. 下载node.js, 给的版本是当前稳定版 正常安装·node.jsD:nodejs`目录 设置windows7系统的环境变量(...

破旧的大卡车
04/14
0
0
H5与小程序如何共用的一套代码? ——小程序混合开发(1)

一、目标 很多时候,大家是不是有这种想法,开发的小程序中,H5与小程序能否共用的一套代码,带后端并且可以提交给微信审核呢? 告诉你,可以! 如何做呢?看下边 二、准备工作 平台: 进入w...

大王12
05/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud云服务 - HongHu架构common-service 项目构建过程

上一篇我们介绍了《整合spring cloud云服务架构 - HongHu云架构common-service代码结构分析》,本节我们将对common-service整个项目进行剖析,将整个构建的流程给记录下来,让更多的关注者来...

itcloud
6分钟前
0
0
Connection reset

在使用HttpClient调用后台resetful服务时,“Connection reset”是一个比较常见的问题,有同学跟我私信说被这个问题困扰很久了,今天就来分析下,希望能帮到大家。例如我们线上的网关日志就会...

夜黑人模糊灬
11分钟前
0
0
如何写PHP规范注释

所有的文档标记都是在每一行的 * 后面以@开头。如果在一段话的中间出来@的标记,这个标记将会被当做普通内容而被忽略掉。 @access 该标记用于指明关键字的存取权限:private、public或prote...

度_
11分钟前
0
0
influxDB Ppostgis

PostGis 1.需要安装postgreSQL,postgis作为插件嵌入到postgreSQL中; 2.使用zip包直接安装,需要修改 makepostgisdb_using_extensions.bat文件中的路径,用户名,密码,然后直接运行; 3.没有...

courtzjl
15分钟前
0
0
多线程Thread-多线程顺序执行

需求:现在有两个任务,任务1和任务2,任务1中有多个线程,并且任务2必须等任务1完成后才能执行。 namespace TThread{ class Program { static void Main(string[] ar...

kaixinguo314
19分钟前
1
0
直播总结

https://blog.csdn.net/weiyuefei/article/details/70257616 视频: 上传服务,转码服务,视频一致性MD5 视频转码技术及转码实现详解 https://wenku.baidu.com/view/32702108844769eae009eda...

素雷
21分钟前
0
0
Linux系统-tcpdump常用抓包命令

序言 单独总结tcpdump抓包的常用命令 主要语法 过滤主机/IP: tcpdump -i eth1 host 172.16.7.206 抓取所有经过网卡1,目的IP为172.16.7.206的网络数据 过滤端口: tcpdump -i eth1 dst port...

MrBoyce
22分钟前
0
0
274. H-Index - LeetCode

Question 274. H-Index Solution 题目大意: 论文里的 h 因子判定,题目的意思可能有点晦涩。h 因子是评判学术成就的一种重要方法,h 因子越高越好,h 因子兼顾研究学术人员的学术产出数量与...

yysue
26分钟前
0
0
 Unable to read class [com.mrp.action.BaseAction]

struts2启动时,出现的 Unable to read class [com.mrp.action.BaseAction] java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/finder/DefaultClassFinder$InfoBuildingVisito......

uug
27分钟前
0
0
分发系统介绍&expect脚本远程登录&expect脚本远程执行命令&expect脚本传递参数

20.27 分发系统介绍 应用场景 企业中随之业务的逐渐增大,后端所使用的编程语言是php,系统为LAMP/LNMP架构,需要将代码上传到服务器中;代码会不断的迭代,这就需要在业务服务器上更新代码,...

影夜Linux
29分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部