nodejs(六)----工具類(Utilties)を一緒に読みます.

4417 ワード

本論文はnodejs 0.8.9バージョンのapi開発マニュアルの解読である.nodejsウェブサイト.
ツールクラス(util)
stability:5-locked
この方法は全部utilモジュールの中にあります.requireを使って彼らを訪問します.
util.format(format,[...])
最初のパラメータをprintfのような機能でフォーマットした後、書式設定された文字列を返します.
最初のパラメータは文字列で、0つ以上のプレースホルダを含みます.各プレースホルダはそれぞれのパラメータに変換された値に置き換えられます.サポートされているプレースホルダは以下の通りです.%s-String文字列.%d-Number.デジタルは整形と浮動小数点型を含む.%j-JSON.jsonフォーマット%-single percent sign('%').This does not consume an argment.シングル百分号で、これは1つのプレースホルダ空間を占めます.対応するパラメータがない場合、プレースホルダは置換されません.
util.format('%s:%s', 'foo'); // 'foo:%s'
パラメータがプレースホルダよりも多い場合は、util.inspect()を使って文字列に変換され、スペースで区切られます.
util.format('%s:%s', 'foo', 'bar', 'baz'); // 'foo:bar baz'
最初のパラメータが書式設定文字列ではない場合、util.format()はスペースで区切られた文字列を返します.各パラメータはutil.inspect()によって文字列に変換されます.
util.format(1, 2, 3); // '1 2 3'
util.debug(string)
同期された出力関数はプロセスをブロックし、直接stderに出力します.
require('util').debug('message on stderr');
util.err([...])
パラメータの個数が異なる以外は、他の機能はutil.debugと同じです.
util.puts(…)
同期された出力関数は、プロセスをブロックし、stdoutに直接出力します.各パラメータは1行です.
util.prints(…)
同期された出力関数はプロセスをブロックし、各パラメータを文字列に変換してstdoutに出力します.各パラメータは新しい行を占有しません.
util.log(string)
タイムスタンプを持ってstdoutに出力します.
require('util').log('Timestamped message.');
util.inspect(object、[showHdden]、[depth]、[COlors])
オブジェクトの文字列形式を返します.
shuhiddenがtrueであれば、対象の非列挙型の属性も表示されます.デフォルトはfalseです.
depthが値があれば、inspectがobjectをフォーマットする時に再帰する回数を表しています.inspectが大きくて複雑なobjectの時に役に立ちます.
デフォルトは2回だけ再帰されます.再帰回数が確定できないなら、nullに入ることができます.
colorsがtrueなら、出力はasniの色コードを使います.デフォルトはfalseです.
プローブutilのすべての属性の例:
var util = require('util');

console.log(util.inspect(util, true, null));
util.isAray(object)
もしobjectが一つの配列であればtureに戻り、他の場合はfalseに戻ります.
var util = require('util');

util.isArray([])
  // true
util.isArray(new Array)
  // true
util.isArray({})
  // false
util.isAray(object)
objectが正規表現である場合はtureに戻り、他の場合はfalseに戻ります.
var util = require('util');

util.isRegExp(/some regexp/)
  // true
util.isRegExp(new RegExp('another regexp'))
  // true
util.isRegExp({})
  // false
util.isDate(object)
もしobjectがdateタイプならtureに戻り、他の場合はfalseに戻ります.
var util = require('util');

util.isDate(new Date())
  // true
util.isDate(Date())
  // false (without 'new' returns a String)
util.isDate({})
  // false
util.isError(object)
もしobjectがErrタイプだったらtureに戻り、他の場合はfalseに戻ります.
var util = require('util');

util.isError(new Error())
  // true
util.isError(new TypeError())
  // true
util.isError({ name: 'Error', message: 'an error occurred' })
  // false
utill.pmp(readable Stream、writable Stream、calback)はすでに廃棄されました.readable Stream.pipe(writable Stream)で代替します.
util.inhers(constructor、super Controuctor)
一つのconstructorの原型方法を継承してもう一つの中に入ります.constructorの原型はsuper Costructorから作成されたオブジェクトに設定されます.
より便利にするために、スーパーコンストラクタはコンストラクタ.super_を通過することができます.アクセス..
var util = require("util");
var events = require("events");

function MyStream() {
    events.EventEmitter.call(this);
}

util.inherits(MyStream, events.EventEmitter);

MyStream.prototype.write = function(data) {
    this.emit("data", data);
}

var stream = new MyStream();

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!"