위챗 애플릿 Node.js(베이스 7) Stream(스트림)

위챗 애플릿 Node.js(Basic 7) Stream(스트림) 세부 개발 자습서:
Stream은 추상적인 인터페이스로 노드의 많은 대상이 이 인터페이스를 실현했다. 
Stream에는 다음과 같은 네 가지 스트림 유형이 있습니다.
 
- Readable - 읽을 수 있는 작업입니다.- Writable - 쓰기 가능 작업입니다.- Duplex - 읽기 및 쓰기 가능.- Transform - 작업이 데이터를 쓰고 결과를 읽습니다.- Stream 객체는 모두 Event Emitter의 인스턴스입니다.자주 사용하는 이벤트는 다음과 같습니다: 데이터 - 읽을 수 있는 데이터가 있을 때 터치합니다.- 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(" ")

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

쓰기

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(" ");

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

파이프라인 스트림

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(" ");

1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13

체인 스트림


체인식은 출력을 연결하여 다른 흐름으로 흐르게 하고 여러 개의 흐름 조작 체인을 만드는 메커니즘이다.체인식 흐름은 일반적으로 파이프 조작에 쓰인다.
압축
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(" 。");

1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
압축 풀기
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(" 。");

1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
위챗 애플릿 Node.js(기초8)exports 모듈 시스템
하나의 Node.js 파일은 모듈입니다. 이 파일은 자바스크립트 코드, JSON, 컴파일된 C/C++ 확장자일 수 있습니다.
// main.js
var hello = require("./hello")
hello.sayHi()

1
2
3
1
2
3
// hello.js
exports.sayHi  = function(){
    console.log("Hello World")
}

1
2
3
4
1
2
3
4
//모듈에 객체 캡슐화
function sayHi(){
    this.hi = function(){
        console.log("Hello World")  
    }
}
module.exports = sayHi

1
2
3
4
5
6
1
2
3
4
5
6
var Hello = require("./hello")
var hello = new Hello()
hello.hi()

좋은 웹페이지 즐겨찾기