nodejs(六)----工具類(Utilties)を一緒に読みます.
4417 ワード
本論文はnodejs 0.8.9バージョンのapi開発マニュアルの解読である.nodejsウェブサイト.
ツールクラス(util)
stability:5-locked
この方法は全部utilモジュールの中にあります.requireを使って彼らを訪問します.
util.format(format,[...])
最初のパラメータをprintfのような機能でフォーマットした後、書式設定された文字列を返します.
最初のパラメータは文字列で、0つ以上のプレースホルダを含みます.各プレースホルダはそれぞれのパラメータに変換された値に置き換えられます.サポートされているプレースホルダは以下の通りです.
同期された出力関数はプロセスをブロックし、直接stderに出力します.
パラメータの個数が異なる以外は、他の機能はutil.debugと同じです.
util.puts(…)
同期された出力関数は、プロセスをブロックし、stdoutに直接出力します.各パラメータは1行です.
util.prints(…)
同期された出力関数はプロセスをブロックし、各パラメータを文字列に変換してstdoutに出力します.各パラメータは新しい行を占有しません.
util.log(string)
タイムスタンプを持ってstdoutに出力します.
オブジェクトの文字列形式を返します.
shuhiddenがtrueであれば、対象の非列挙型の属性も表示されます.デフォルトはfalseです.
depthが値があれば、inspectがobjectをフォーマットする時に再帰する回数を表しています.inspectが大きくて複雑なobjectの時に役に立ちます.
デフォルトは2回だけ再帰されます.再帰回数が確定できないなら、nullに入ることができます.
colorsがtrueなら、出力はasniの色コードを使います.デフォルトはfalseです.
プローブutilのすべての属性の例:
もしobjectが一つの配列であればtureに戻り、他の場合はfalseに戻ります.
objectが正規表現である場合はtureに戻り、他の場合はfalseに戻ります.
もしobjectがdateタイプならtureに戻り、他の場合はfalseに戻ります.
もしobjectがErrタイプだったらtureに戻り、他の場合はfalseに戻ります.
util.inhers(constructor、super Controuctor)
一つのconstructorの原型方法を継承してもう一つの中に入ります.constructorの原型はsuper Costructorから作成されたオブジェクトに設定されます.
より便利にするために、スーパーコンストラクタはコンストラクタ.super_を通過することができます.アクセス..
ツールクラス(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!"