nodejsのutilツールの紹介

8931 ワード

  • フォーマット出力文字列:util.format(format[、...])
  • 最初のパラメータに従って、printfのようなフォーマットされた文字列を返します.入力された最初のパラメータは、ゼロまたは複数のプレースホルダを含む文字列であり、formatメソッドは、各プレースホルダをその対応する値に置き換えて出力します.formatメソッドでサポートされているプレースホルダには、%s-文字列.%d-数字(整数と浮動小数点タイプ).%j-JSON.このパラメータが循環オブジェクトの参照を含むと、文字列「[Circuar]」に置き換えられます.%単独の百分号(%)パラメータを占用しません.フォーマット方法のいくつかの使用例:
    console.log(util.format('%s:%s', 'foo'));   // foo:%s
    console.log(util.format('%s:%s:%d', 'foo', 'bar', 'baz'));  // foo:bar:NaN
    console.log(util.format(1, 2, 3));  // 1 2 3
  • コンソール標準出力:
  •  util.log(string)
    printf方法は、コンソールstdoutで出力するために使用され、タイムスタンプを持って出力される.
    util.log('    stout  ');            //15 Jun 18:28:20 -     stout  
  • オブジェクトを文字列に並べ替える:
  • util.inspect(object[, options])
    inspect法はオブジェクトを列化するための文字列であり、この方法はデバッグコードでオブジェクト構造を見る際に非常に有用である.オプションのパラメータの値は以下の通りです.showHdden-列挙表示オブジェクトの隠し属性が表示されますか?デフォルトはfalse depth-オブジェクトの列挙表示の深さを設定します.デフォルトは2です.nullに設定すると無限再帰的に表示されます.
    colors-trueにするとANSI色コードスタイルで出力します.デフォルトはfalseです
    custom Inspect-falseとすると、被検査対象として定義されたinspect(depth,opts)メソッドは起動されません.デフォルトはtrueです例えば、utilオブジェクトのすべての属性をチェックします.コードは以下の通りです
    var util = require('util');
    
    console.log(util.inspect(util, { showHidden: true, depth: null }));
    3.1カスタムutil.inspect色
    util.inspect属性は、カスタム出力の色とスタイルに使用され、util.inspect.styleとutil.inspect.co lors属性で設定できます.util.inspect.co lorsで定義できる色は、ホワイト、grey、black、blue、cyan、green、magenta、red、yellowです.util.inspect.styliesで定義可能なスタイルは、bold、italic、undeline、inverse 3.2カスタムオブジェクトのinspect()メソッドです.
    オブジェクトは自分のinspect(depth)メソッドを定義できます.util.inspect()を使ってオブジェクトをチェックすると、カスタムinspect(depth)メソッドが実行されます.使用例は以下の通りです.
    var util = require('util');
    
    var obj = { name: 'nate' };
    obj.inspect = function(depth) {
      return '{' + this.name + '}';
    };
    
    util.inspect(obj);
      // "{nate}"
  • 対象が配列であるかどうかを確認する:util.isAray(object)
  • ISAray()方法は、着信先がデータかどうかを調べるために用いられ、まずECMAScript 5のAray.isAray()方法やtypeof操作子などを用いて検査を行い、検査結果の正確性を確保する.いくつかの使用例は以下の通りです.
    var util = require('util');
    
    util.isArray([])
      // true
    util.isArray(new Array)
      // true
    util.isArray({})
      // false
  • 対象がRegExpタイプかどうかチェックします.util.isRegExp
  • isRegExpメソッドは、オブジェクトがRegExpタイプかどうか、すなわち正規表現オブジェクトかどうかを確認するために使用されます.いくつかの使用例は以下の通りです.
    var util = require('util');
    
    util.isRegExp(/some regexp/)
      // true
    util.isRegExp(new RegExp('another regexp'))
      // true
    util.isRegExp({})
      // false
  • 対象がDateタイプかどうかチェックします.util.isDate
  • isDateメソッドは、オブジェクトがRegExpタイプであるかどうかを確認するために使用されます.すなわち、日付タイプです.いくつかの使用例は以下の通りです.
    var util = require('util');
    
    util.isDate(new Date())
      // true
    util.isDate(Date())
      // false (without 'new' returns a String)
    util.isDate({})
      // false
  • は、オブジェクトがErrorタイプかどうかをチェックします.util.isError
  • ISErr法は,オブジェクトがErrタイプかどうかを調べるために用いられる.いくつかの使用例は以下の通りです.
    var util = require('util');
    
    util.isError(new Error())
      // true
    util.isError(new TypeError())
      // true
    util.isError({ name: 'Error', message: 'an error occurred' })
      // false
  • オブジェクト間プロトタイプ継承を実現する:util.inhers(constructor、super Costructor)
  • util.inhersは対象間原型継承を実現する方法です.JavaScriptのオブジェクト指向特性は、プロトタイプの継承に基づいており、一般的なベースクラスとは異なり、JavaScriptは対象継承の言語レベル特性を提供せず、プロトタイプチェーンコピーによって実現される.inheritys法は親のプロトタイプチェーン上の方法をサブクラスにコピーし、プロトタイプ継承を実現します.例を使用して、1つの型式の継承を実現します.
    var util = require("util");
    var events = require("events");
    //MyStreamコンストラクタでthisを本オブジェクトに向ける
    function MyStream() {
        events.EventEmitter.call(this);
    }
    //親オブジェクトのすべての方法をコピーします.
    util.inherits(MyStream, events.EventEmitter);
    //MyStream類にプロトタイプを追加する方法
    MyStream.prototype.write = function(data) {
        this.emit("data", data);
    }
    
    var stream = new MyStream();
    //MyStreamはEventEmitterから継承されているので、その例のstreamはMyStream類の実例であり、EventEmitter類の例でもある
    console.log(stream instanceof events.EventEmitter); // true
    console.log(MyStream.super_ === events.EventEmitter); // true
    //親類でのメソッド呼び出し
    stream.on("data", function(data) {
        console.log('Received data: "' + data + '"');
    })
    //サブクラスのメソッド呼び出し
    stream.write("It works!"); // Received data: "It works!"