nodejsのutilツールの紹介
8931 ワード
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}"
var util = require('util');
util.isArray([])
// true
util.isArray(new Array)
// true
util.isArray({})
// false
var util = require('util');
util.isRegExp(/some regexp/)
// true
util.isRegExp(new RegExp('another regexp'))
// true
util.isRegExp({})
// false
var util = require('util');
util.isDate(new Date())
// true
util.isDate(Date())
// false (without 'new' returns a String)
util.isDate({})
// false
var util = require('util');
util.isError(new Error())
// true
util.isError(new TypeError())
// true
util.isError({ name: 'Error', message: 'an error occurred' })
// false
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!"