Node.js API詳細解のutilモジュールの使い方の実例分析


本明細書の例は、Node.js APIの詳細な解釈のためのutilモジュールの使用法を説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
Node.js API詳細解のutil
utilモジュールは、Node.js内部のAPIの需要をサポートするために主に使用される。ほとんどの実用ツールが提供されています。
const util=require(‘util’)を通じて;を参照してください。
utill.calbackify(original)
説明:
original:async関数を渡すか、またはPromiseに戻る非同期関数です。
calbackifyは方法を返します。この方法を実行する時はコールバック関数を伝えます。コールバック関数の最初のパラメータはerrで、二つ目は非ステップ関数の戻り値です。
デモ:

const util = require('util');
async function fn() {
 return await Promise.resolve('hello isjs');
}
const callbackFunction = util.callbackify(fn);
callbackFunction((err, ret) => {
 if (err) throw err;
 console.log(ret);
});
//  : hello isjs

util.debuglog(セレクション)
説明:
util.debuglog()メソッドは、NODE(u)に基づいて関数を作成するために使用されます。DEBUG環境変数の存在かどうかは、デバッグ情報をstderに条件付きで書き込みます。
section名が環境変数の値にある場合、返ってくる関数は、consolone.error()と同様である。返された関数は空です。
アクション:文字列を指定して、アプリケーションのどの部分にdebuglog関数を作成しますか?
デモ:

const util = require('util');
const debuglog = util.debuglog('foo');
debuglog('hello from foo [%d]', 123);

util.deprecate(function、string)
説明:
この方法は所与のfunctionまたはクラスを包装し、廃棄したものとしてマークします。
デモ:

const util = require('util');
function isBoolean(obj){
 return (obj === true || obj === false);
}
isBoolean = util.deprecate(isBoolean, 'isBoolean       ');
isBoolean(true);
//  :(node:9911) DeprecationWarning: isBoolean       

util.format(format[,…args])
説明:
util.format()メソッドはフォーマットされた文字列を返します。
format:最初のパラメータは、ゼロまたは複数のプレースホルダを含む文字列です。
各プレースホルダは、対応するパラメータの変換された値に置き換えられます。サポートされているプレースホルダはありますか?
%s:文字列
%d:数値(整数または浮動小数)
%i:整数
%f:浮動小数点数
%j C JSON
%o C Object(列挙できない属性方法を含む)
%O C Object(列挙できない属性を含まない)
%C単一百分号('%')はパラメータを消費しません。
デモ:

const util = require('util');
var formatString = util.format('%s %d %i %f %j', 'hello', 1.123, 123, 2.1, "{'name': 'xiao', 'age': '18'}");
console.log(formatString);
//e  : hello 1.123 123 2.1 "{'name': 'xiao', 'age': '18'}"
//            ,        。
formatString = util.format('%s , %s', 'hello');
console.log(formatString);
//  : hello , %s
//               ,                ,
//           ,           。
formatString = util.format('%s , %s', 'hello', 'isjs', '!');
console.log(formatString);
//  : hello , isjs !
//              ,                       
formatString = util.format(1, 2, 3);
console.log(formatString);
//  : 1 2 3
//              ,     
formatString = util.format('%% , %s');
console.log(formatString);
//  : %% , %s

util.inhers(constructor、super Controuctor)
説明:
なお、util.inhers()の使用は推奨されていません。ES 6のクラスとextendsのキーワードを使って言語レベルの継承サポートを獲得してください。
プロトタイプ法を構造関数から別のものに継承した。
constructorのprototypeはsuper Costructorから作成された新しいオブジェクトに設定されます。
スーパーコンストラクタはコンストラクタ.super_を通してできます。属性アクセス
デモ:

const util = require('util');
const EventEmitter = require('events');
function MyStream() { 
 EventEmitter.call(this);
}
util.inherits(MyStream, EventEmitter);
MyStream.prototype.write = function(data) {
 this.emit('data', data);
};
const stream = new MyStream();
console.log(stream instanceof EventEmitter); // true
console.log(MyStream.super_ === EventEmitter); // true
stream.on('data', (data) => {
 console.log(`     :"${data}"`);
});
stream.write('    !'); //      :"    !"
//     ES6   class   extends:
const EventEmitter = require('events');
class MyStream extends EventEmitter {
 write(data) {
 this.emit('data', data);
 }
}
const stream = new MyStream();
stream.on('data', (data) => {
 console.log(`     :"${data}"`);
});
stream.write('   ES6');

util.inspect(object[,options])
説明:
方法はobjectの文字列表現を返します。主にデバッグに使います。
object:任意のJavaScript元の値またはオブジェクト
options:書式設定された文字列のいくつかの態様を変更するために使用できます。
デモ:

const util = require('util');
const inspectOpt = {
 showHidden: false,//    true,  object                          。
 depth: 2,//      object       。     2。            null。
 colors: false,//    true,        ANSI     。     false。
 customInspect: true,//    false,  object       inspect(depth, opts)        。     true
 showProxy: false,//    true,  Proxy                target   handler   。     false
 maxArrayLength: 100,//          TypedArray           。     100。    null          。    0            。
 breakLength: 60//               。    Infinity            。     60。
};
console.log(util.inspect(util, inspectOpt));

util.inspect.style,util.inspect.co lors
説明:
util.inspect.styleとutil.inspect.com lors属性により、グローバルにutil.inspectの色出力をカスタマイズすることができます。
予め定義されている色コードは、white、grey、black、blue、cyan、green、magenta、red、yellowです。
bold、italic、アンダーライン、inverseコードもあります。
色スタイルはANSI制御コードを使用していますが、すべての端末がサポートしているわけではないかもしれません。
デモ:

const util = require('util');
console.log(util.inspect.styles);
// { special: 'cyan',
// number: 'yellow',
// boolean: 'yellow',
// undefined: 'grey',
// null: 'bold',
// string: 'green',
// symbol: 'green',
// date: 'magenta',
// regexp: 'red' }
console.log(util.inspect.colors);
// { bold: [ 1, 22 ],
// italic: [ 3, 23 ],
// underline: [ 4, 24 ],
// inverse: [ 7, 27 ],
// white: [ 37, 39 ],
// grey: [ 90, 39 ],
// black: [ 30, 39 ],
// blue: [ 34, 39 ],
// cyan: [ 36, 39 ],
// green: [ 32, 39 ],
// magenta: [ 35, 39 ],
// red: [ 31, 39 ],
// yellow: [ 33, 39 ] }

util.inspect.custom
説明:
util.inspect.customは記号であり、カスタマイズしたビュー関数を宣言するために使用できます。
カスタムinspectメソッドの戻り値は、util.inspect()によってフォーマットされます。
デモ:

const util = require('util');
class Box {
 [util.inspect.custom](depth, options) {
 return "myInspect";
 }
}
const box = new Box();
console.log(util.inspect(box));
//   :myInspect
 
util.inspect.default Options
説明:
default Options値は、util.inspectのデフォルトオプションをカスタマイズできます。
一つ以上の有効なutil.inspect()を含むオブジェクトに設定します。オプションの直接設定にも対応します。
デモ:

const util = require('util');
util.inspect.defaultOptions = {
 showHidden: true,
 depth:3
};
util.inspect.defaultOptions.breakLength = 30;
console.log(util.inspect.defaultOptions);
// { showHidden: true,
// depth: 3,
// colors: false,
// customInspect: true,
// showProxy: false,
// maxArrayLength: 100,
// breakLength: 30 }

util.promisify(oricgial)
説明:
通常のNode.js error firstコールスタイルの関数に従ってください。コールバック関数は最後のパラメータです。戻り値を返すのはpromiseバージョンの関数です。
デモ:

const util = require('util');
const fs = require('fs');
const stat = util.promisify(fs.stat);
stat('.').then((stats) => {
 // Do something with `stats`
}).catch((error) => {
 // Handle the error.
});

util.promisify.custom
説明:
util.promisify.customシンボルを使用して、promisified機能をカスタマイズできます。
デモ:

const util = require('util');
function doSomething(foo, callback) {
 // ...
}
doSomething[util.promisify.custom] = function(foo) {
 return getPromiseSomehow();
};
const promisified = util.promisify(doSomething);
console.log(promisified === doSomething[util.promisify.custom]);
//   : true

クラス:util.Text Engcoder
説明:
このクラスはテキストをエンコードします。
text Encoder.encode([input])
説明:
input文字列をエンコードし、Uint 8 Arayを返します。符号化バイトを含む文字列です。
text Encoder.encoding
説明:
TextEnderのインスタンスによってサポートされるコード。常に「utf-8」に設定します。
デモ:

const encoder = new TextEncoder();
const uint8array = encoder.encode('this is some data');
console.log(encoder.encoding)
//utf-8

クラス:util.Text Decoder
説明:
このクラスはコード化されたテキストを解析するために使用されます。
new TextDecoder([encoding[,options])
説明:
TextDecoderの例を作成します。
encoding:符号化方式、デフォルト'utf-8'
options:オプション
fatal:デコードで発生したエラーはTypeErrが投げ出されます。デフォルトはfalseです
InoreBOM:復号結果にはバイト順フラグが含まれていますか?デフォルトはfalseです。encodingの値が'utf-8','utf-16 be'または'utf-16 le'の場合のみ有効です。
text Decoder.decode([input[,options])
説明:
inputを復号して文字列を返します。
input:復号待ちデータ
options.stream:追加のデータブロックが必要であれば、trueに設定します。デフォルトはfalseです。
text Decoder.encoding
説明:
text Decoderのインスタンスによってサポートされるコードを返します。
text Decoder.fatal
説明:
text Decoderのインスタンスのfatal属性を返します。
text Decoder.ignoreBOM
説明:
復号結果にバイト順マーカーが含まれているかどうかを返します。
ここで述べたように皆さんのnode.jsプログラムの設計に役に立ちます。