이 글에서는 Node.js readline 모듈과 util 모듈의 사용법을 주로 소개하고 참고용으로 올려드립니다.
1. 스트림 데이터를 한 줄씩 읽으려면 readline 모듈을 사용하십시오.
1.1 인터페이스 객체 생성
readline 모듈에서 스트림 데이터를 한 줄씩 읽는 처리는 인터페이스 객체. 따라서 먼저 인터페이스 객체를 생성해야 합니다. readline.createInterface(options) 메소드를 통해 인터페이스 객체를 생성할 수 있습니다. 입력: 속성 값은 객체입니다. 스트림을 읽는 데 사용할 수 있는 데이터 개체입니다. 읽기 데이터의 소스를 지정하는 데 사용됩니다.
output: 속성 값은 스트림 데이터를 쓰는 데 사용할 수 있는 개체이며 데이터의 출력 대상을 지정하는 데 사용됩니다.
컴퓨터: 속성값은 탭 완성 처리를 지정하는 데 사용되는 함수입니다. 함수의 매개변수 값은 행에서 읽은 Tab 문자 앞의 데이터로 자동 설정됩니다. 함수는 Tab 완성에 사용되는 모든 일치하는 문자열과 행에서 읽은 데이터로 구성된 배열을 반환해야 합니다. .
terminal: 이 속성은 부울 유형 속성입니다. 입력 데이터 스트림을 터미널처럼 실시간으로 출력해야 하며 출력 데이터에 ANSI/VT100 제어 문자열을 작성해야 하는 경우 이 속성을 사용해야 합니다. 값은 true로 설정되며, 기본 속성 값은 출력 속성 값 객체의 isTTY 속성 값과 같습니다.
// 输入 exit, quit,q这三个任意之一的时候,会退出 const readline = require('readline'); let rl = readline.createInterface({ input: process.stdin, output: process.stdout, completer: completer }); rl.on('line', (line) => { if (line === 'exit' || line === 'quit' || line === 'q') { rl.close(); } else { console.log('您输入了:', line); } }); rl.on('close', () => { console.log('行数据读取操作被终止'); }); function completer(line) { const completions = '.help .error .exit .quit .q'.split(' '); let hits = completions.filter((c) => { return c.indexOf(line) === 0; }); return [hits.length ? hits : completions, line] }
1.2 인터페이스 객체를 사용하여 파일을 한 줄씩 읽습니다.
console.log('this is line 1'); console.log('this is line 2'); console.log('this is line 3'); console.log('this is line 4'); console.log('this is line 5');
코드 내용
const readline = require('readline'); const fs = require('fs'); let file = fs.createReadStream('./fs.js'); let out = fs.createWriteStream('./anotherFs.js'); let index = 1; out.write('/*line' + index.toString() + ": */"); let rl = readline.createInterface({ input: file, output: out, terminal: true }); rl.on('line', (line) => { if (line === '') { rl.close(); } else { index++; out.write('/*line' + index.toString() + ': */'); } });
생성된 anotherFs.js 파일의 내용
/*line1: */console.log('this is line 1'); /*line2: */console.log('this is line 2'); /*line3: */console.log('this is line 3'); /*line4: */console.log('this is line 4'); /*line5: */console.log('this is line 5');/*line6: */
2 .제공되는 util 모듈을 사용합니다.
+format method
의 일부 메소드는 C 언어의 printf 메소드와 유사하며 첫 번째 매개변수 값은 형식 문자열로 사용되며 나머지 매개변수 값은 사용되는 매개변수로 사용됩니다. 형식 문자열로 반환합니다.util.format('%d개의 매개변수를 입력했습니다. 매개변수 값은 %s,%s,%s',3,'nice','excelent','holy입니다. ');
형식 문자열에서 매개변수 지정 기호를 사용할 수 있습니다
*`%s`: 문자열 매개변수를 지정하는 데 사용됩니다.
*`%d`: 정수를 포함한 숫자 매개변수를 지정하는 데 사용됩니다. 포인트 번호
*`%j`: `JSON` 객체를 지정하는 데 사용됨
*`%%`: 백분율 기호를 지정하는 데 사용됨
* 형식 문자열에 사용된 경우 매개변수가 형식 메소드에 사용된 `format` 매개변수 이외의 매개변수보다 많으면 형식 문자열에서 더 많은 매개변수가 대체되지 않습니다. '));`
*형식 문자열에 사용된 매개변수의 개수가 `format` 매개변수를 제외하고 `format` 메서드에 사용된 다른 매개변수보다 적은 경우 ` 다음보다 많은 유형이 있는 경우 format` 메소드의 매개변수 값은 자동으로 공백으로 구분된 문자열로 변환됩니다.
+inspect(object,[options])는 객체의 정보가 포함된 문자열을 반환하므로 프로세스에 매우 유용합니다.
*`showHidden
*`깊이<숫자>`는 `객체` 형식을 지정할 때 반복 횟수를 지정합니다. 이는 크고 복잡한 객체를 보는 데 유용합니다. 기본값은 `2`입니다. 반복은 `null`로 전달됩니다.
전역적으로 가능합니다. util.inspect.styles 및 util.inspect.colors 속성을 통해 util.inspect(활성화된 경우)의 색상 출력을 사용자 정의하세요
const util = require('util'); console.log(util.format('您输入了%d个参数,参数值分别为%s,%s,%s', 3, 'nice', 'excelent', 'holy')); //您输入了3个参数,参数值分别为nice,excelent,holy console.log(util.format('一个JSON对象%j', {'name': 'jack', 'age': 25})); // 一个JSON对象{"name":"jack","age":25} console.log(util.format('一个百分号%'));// 一个百分号% console.log(util.format('%s:%s', 'one'));// one:%s console.log(util.format('%s', 'one', 'two', 'three', {'name': 'jack'})); function test(one, two) { return one + two; } let parent = new Object(); parent.name = 'parent'; parent.func = test; let child1 = new Object(); child1.name = 'child1'; parent.child1 = child1; let child2 = new Object(); child2.name = 'child2'; child1.child = child2; let child3 = new Object(); child3.name = 'child3'; child2.child = child3; child2.inspect = function (depth) { return util.inspect(this, {depth: depth - 2, customInspect: false}) }; console.log(util.inspect(parent, {customInspect: true, depth: 4})); /** * { name: 'parent', * func: [Function: test], * child1: * { name: 'child1', * child: { name: 'child2', child: [Object], inspect: [Function] } } } * **/
관련 기사:
vue 캐러셀 차트 플러그인 vue-concise-slider 사용 vue 페이지를 떠난 후 함수 실행 인스턴스vue 페이지 새로 고침 또는 뒤로 매개변수 손실 문제 해결위 내용은 Node.js에서 readline 모듈과 util 모듈을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!