Node.js에서 readline 모듈과 util 모듈을 사용하는 방법

亚连
풀어 주다: 2018-06-02 11:49:39
원래의
1423명이 탐색했습니다.

이 글에서는 Node.js readline 모듈과 util 모듈의 사용법을 주로 소개하고 참고용으로 올려드립니다.

1. 스트림 데이터를 한 줄씩 읽으려면 readline 모듈을 사용하십시오.

1.1 인터페이스 객체 생성

readline 모듈에서 스트림 데이터를 한 줄씩 읽는 처리는 인터페이스 객체. 따라서 먼저 인터페이스 객체를 생성해야 합니다. readline.createInterface(options) 메소드를 통해 인터페이스 객체를 생성할 수 있습니다. 입력: 속성 값은 객체입니다. 스트림을 읽는 데 사용할 수 있는 데이터 개체입니다. 읽기 데이터의 소스를 지정하는 데 사용됩니다.

  1. output: 속성 값은 스트림 데이터를 쓰는 데 사용할 수 있는 개체이며 데이터의 출력 대상을 지정하는 데 사용됩니다.

  2. 컴퓨터: 속성값은 탭 완성 처리를 지정하는 데 사용되는 함수입니다. 함수의 매개변수 값은 행에서 읽은 Tab 문자 앞의 데이터로 자동 설정됩니다. 함수는 Tab 완성에 사용되는 모든 일치하는 문자열과 행에서 읽은 데이터로 구성된 배열을 반환해야 합니다. .

  3. terminal: 이 속성은 부울 유형 속성입니다. 입력 데이터 스트림을 터미널처럼 실시간으로 출력해야 하며 출력 데이터에 ANSI/VT100 제어 문자열을 작성해야 하는 경우 이 속성을 사용해야 합니다. 값은 true로 설정되며, 기본 속성 값은 출력 속성 값 객체의 isTTY 속성 값과 같습니다.

  4. // 输入 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 인터페이스 객체를 사용하여 파일을 한 줄씩 읽습니다.

  5. 원본 fs.js 파일의 내용
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`: 문자열 매개변수를 지정하는 데 사용됩니다.

  1. *`%d`: 정수를 포함한 숫자 매개변수를 지정하는 데 사용됩니다. 포인트 번호

  2. *`%j`: `JSON` 객체를 지정하는 데 사용됨

  3. *`%%`: 백분율 기호를 지정하는 데 사용됨

  4. * 형식 문자열에 사용된 경우 매개변수가 형식 메소드에 사용된 `format` 매개변수 이외의 매개변수보다 많으면 형식 문자열에서 더 많은 매개변수가 대체되지 않습니다. '));`

  5. *형식 문자열에 사용된 매개변수의 개수가 `format` 매개변수를 제외하고 `format` 메서드에 사용된 다른 매개변수보다 적은 경우 ` 다음보다 많은 유형이 있는 경우 format` 메소드의 매개변수 값은 자동으로 공백으로 구분된 문자열로 변환됩니다.

  6. +inspect(object,[options])는 객체의 정보가 포함된 문자열을 반환하므로 프로세스에 매우 유용합니다.

*`showHidden`true`인 경우 `object`의 열거할 수 없는 기호 및 속성도 형식화된 결과에 포함됩니다. 기본값은 `false`입니다.

  1. *`깊이<숫자>`는 `객체` 형식을 지정할 때 반복 횟수를 지정합니다. 이는 크고 복잡한 객체를 보는 데 유용합니다. 기본값은 `2`입니다. 반복은 `null`로 전달됩니다.

  2. *`colors``true`인 경우 출력 스타일은 `ANSI` 색상 코드를 사용합니다. 기본값은 `false`입니다.
  3. *`customInspect` `false`인 경우 `object`에 대한 사용자 정의 `inspect(length,opts)` 함수가 호출되지 않습니다. 기본값은 `true`입니다.
  4. *`showProxy

    *`maxArrayLength`는 배열과 `TypedArray'의 최대 수를 지정합니다. ` 요소는 포함될 수 있습니다. 기본값은 `100`입니다. 모든 배열 요소를 표시하려면 `0*`으로 설정하거나 배열 요소를 표시하지 않으려면 음수로 설정하세요.
  5. *`breakLength` 개체의 키는 여러 줄의 길이로 분할됩니다. 개체를 단일 줄로 포맷하려면 '무한대'로 설정하세요. 기본값은 '60'입니다.
  6. +custom util.inspect color
  7. 전역적으로 가능합니다. util.inspect.styles 및 util.inspect.colors 속성을 통해 util.inspect(활성화된 경우)의 색상 출력을 사용자 정의하세요

    const util = require(&#39;util&#39;);
    console.log(util.format(&#39;您输入了%d个参数,参数值分别为%s,%s,%s&#39;, 3, &#39;nice&#39;, &#39;excelent&#39;, &#39;holy&#39;));
    //您输入了3个参数,参数值分别为nice,excelent,holy
    console.log(util.format(&#39;一个JSON对象%j&#39;, {&#39;name&#39;: &#39;jack&#39;, &#39;age&#39;: 25}));
    // 一个JSON对象{"name":"jack","age":25}
    console.log(util.format(&#39;一个百分号%&#39;));// 一个百分号%
    console.log(util.format(&#39;%s:%s&#39;, &#39;one&#39;));// one:%s
    console.log(util.format(&#39;%s&#39;, &#39;one&#39;, &#39;two&#39;, &#39;three&#39;, {&#39;name&#39;: &#39;jack&#39;}));
    
    function test(one, two) {
      return one + two;
    }
    
    let parent = new Object();
    parent.name = &#39;parent&#39;;
    parent.func = test;
    
    let child1 = new Object();
    child1.name = &#39;child1&#39;;
    parent.child1 = child1;
    
    let child2 = new Object();
    child2.name = &#39;child2&#39;;
    child1.child = child2;
    
    let child3 = new Object();
    child3.name = &#39;child3&#39;;
    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: &#39;parent&#39;,
     *  func: [Function: test],
     *  child1:
     *  { name: &#39;child1&#39;,
     *   child: { name: &#39;child2&#39;, child: [Object], inspect: [Function] } } }
     * **/
    로그인 후 복사
  8. 위 내용은 제가 모든 사람을 위해 편집한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

vue 캐러셀 차트 플러그인 vue-concise-slider 사용

vue 페이지를 떠난 후 함수 실행 인스턴스

vue 페이지 새로 고침 또는 뒤로 매개변수 손실 문제 해결

위 내용은 Node.js에서 readline 모듈과 util 모듈을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!