Node.js——Stream
Posted 站错队了同志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js——Stream相关的知识,希望对你有一定的参考价值。
介绍
- 文件流:我们一般对大一点的文件实现stream的方式进行操作
- http:显然http.createServer创建过程中的IncomingMessage实现了可读流的接口,ServerResponse实现了可写流的借口
文件流
- 写入流的close事件,必须通过ws.end() 方法来调用
- 文件的默认是flags是w,这是覆盖操作,追加的话是a
var fs = require(‘fs‘) var rs = fs.createReadStream(‘./a.txt‘) var ws = fs.createWriteStream(‘./hello.txt‘, { flags: ‘a‘ }) rs.once(‘open‘, function () { console.log(‘可读流打开了‘) }) rs.once(‘close‘, function () { console.log(‘可读流关闭了‘) ws.end() }) rs.on(‘data‘, function (data) { ws.write(data) }) ws.once(‘open‘, function () { console.log(‘可写流打开了‘) }) ws.once(‘close‘, function () { console.log(‘可写流关闭了‘) })
- 管道pipe对于流的操作更加方便,不需要在读流的过程中在写流
var fs = require(‘fs‘) var rs = fs.createReadStream(‘./a.txt‘) var ws = fs.createWriteStream(‘./hello.txt‘, { flags: ‘a‘ }) rs.once(‘open‘, function () { console.log(‘可读流打开了‘) }) rs.once(‘close‘, function () { console.log(‘可读流关闭了‘) // ws.end() }) // rs.on(‘data‘, function (data) { // ws.write(data) // }) ws.once(‘open‘, function () { console.log(‘可写流打开了‘) }) ws.once(‘close‘, function () { console.log(‘可写流关闭了‘) }) rs.pipe(ws)
以上是关于Node.js——Stream的主要内容,如果未能解决你的问题,请参考以下文章
Node.js 文件上传(Express 4、MongoDB、GridFS、GridFS-Stream)
Node.js中的代码AWS Lambda Package不会调用putRecord()来将数据添加到AWS Kinesis Firehose Stream中