モジュール基本モジュール

モジュールユーティリティ

utilモジュールは、データ型の判定、オブジェクト属性のコピー、テンプレート文字列の解析、イベント処理などの実用的なツール機能を提供します。

以下に具体的な紹介と例を示します。

  1. データ型を決定する -util.is[type] このモジュールは、受信パラメータのデータ型を決定するためのなどのメソッドを提供します。次に例を示しますisDateisRegExpisError
1 2 3
var util = require('util'); console.log(util.isDate(new Date())); console.log(util.isRegExp(/some regexp/));
  1. オブジェクト プロパティのコピー -util.inherits() このメソッドはオプションで 1 つのコンストラクターを別のコンストラクターから継承できるため、プロトタイプの継承が実装されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
var util = require('util'); function Animal() { this.name = 'Animal'; this.sleep = function() { console.log(this.name + '正在睡觉!'); } } Animal.prototype.eat = function(food) { console.log(this.name + '正在吃:' + food); }; function Cat() { this.name = 'cat'; } util.inherits(Cat, Animal);

Catこのコンストラクターを使用して、Animalのインスタンス プロパティとプロトタイプ プロパティを継承し、Catインスタンスのプロパティとメソッドを出力します。

1 2 3 4
var cat = new Cat(); console.log(cat.name); console.log(cat.eat('fish')); console.log(cat.sleep());
  1. util.format() フォーマットされた出力テンプレート
1 2 3 4 5
const util = require('util'); const str1 = util.format('%s:%s', 'foo'); const str2 = util.format('%s:%s', 'foo', 'bar', 'baz'); console.log(str1) // => 'foo:%s' console.log(str2) // => 'foo:bar baz'

上記はutilモジュールの一般的なメソッドの一部であり、実際の開発プロセスを簡素化するためによく使用されます。

物体

LruCache

LRU (最も最近使用されていない) キャッシュ オブジェクト。 を参照してください。LruCache物体。

1
LruCache util.LruCache;

TextDecoder

TextDecoderデコードオブジェクト、参照TextDecoder物体。

1
TextDecoder util.TextDecoder;

TextEncoder

TextEncoderオブジェクトのエンコードについては、を参照してください。TextEncoder物体。

1
TextEncoder util.TextEncoder;

types

typesこのモジュールは、データ型を決定するためのツール機能を提供します。

1
types util.types;

静的関数

format

指定された形式に従って変数をフォーマットする

1 2
static String util.format(String fmt, ...args);

呼び出しパラメータ:

  • fmt: 文字列、フォーマット文字列
  • args: ...、オプションのパラメータリスト

返される結果:

  • String、フォーマットされた文字列を返します

format フォーマット変数

1
static String util.format(...args);

呼び出しパラメータ:

  • args: ...、オプションのパラメータリスト

返される結果:

  • String、フォーマットされた文字列を返します

inherits

あるコンストラクターから別のコンストラクターにプロトタイプ関数を継承します。コンストラクターのプロトタイプは、スーパークラス (superConstructor) から作成された新しいオブジェクトに設定されます。

1 2
static util.inherits(Value constructor, Value superConstructor);

呼び出しパラメータ:

  • constructor: 値、初期コンストラクター
  • superConstructor: 値、継承されたスーパークラス

inspect

この関数は、主にデバッグに使用される obj の文字列表現を返します。追加のオプションを使用して、書式設定された文字列の特定の側面を変更できます。

1 2
static String util.inspect(Value obj, Object options = {});

呼び出しパラメータ:

  • obj: 値、処理するオブジェクトを指定します
  • options: オブジェクト、形式制御オプションを指定します

返される結果:

  • String、フォーマットされた文字列を返します

次のパラメータがサポートされています。

1 2 3 4 5 6 7 8 9
{ "colors": false, // specify if output should be colorized, defaults to false "depth": 2, // specify the max depth of the output, defaults to 2 "table": false, // specify if output should be a table, defaults to false "encode_string": true, // specify if string should be encoded, defaults to true "maxArrayLength": 100, // specify max number of array elements to show, set to 0 or negative to show no elements, defaults to 100 "maxStringLength": 10000, // specify max string length to output, set to 0 or negative to show no strings, defaults to 10000 "fields": [], // specify the fields to be displayed, defaults to all }

deprecate

指定された関数をカプセル化します。この関数は互換性があるだけであり、警告は出力されません。

1 2 3
static Function util.deprecate(Function fn, String msg, String code = "");

呼び出しパラメータ:

  • fn: カプセル化する必要がある関数を指定した関数
  • msg: 文字列、指定された警告メッセージ
  • code: 文字列、指定された警告番号

返される結果:

  • Function、カプセル化の結果が

isEmpty

指定された変数に値が含まれていない (列挙可能なプロパティがない) かどうかを確認します。

1
static Boolean util.isEmpty(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、空の場合は True を返します

isArray

指定された変数が配列であるかどうかを確認します

1
static Boolean util.isArray(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、配列の場合は True を返します

isBoolean

指定された変数がブール値であるかどうかをテストします

1
static Boolean util.isBoolean(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、ブール値の場合は True を返します

isNull

指定された変数が Null かどうかを確認します

1
static Boolean util.isNull(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、Nullの場合はTrueを返します。

isNullOrUndefined

指定された変数がNullか未定義かをチェックします。

1
static Boolean util.isNullOrUndefined(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • BooleanNull または Unknown の場合は、True を返します。

isNumber

指定された変数が数値かどうかをテストします

1
static Boolean util.isNumber(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、数値の場合は True を返します

isBigInt

指定された変数が BigInt かどうかをテストします

1
static Boolean util.isBigInt(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、数値の場合は True を返します

isString

指定された変数が文字列かどうかを確認します

1
static Boolean util.isString(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、文字列の場合は True を返します

isUndefined

指定された変数が未定義かどうかを確認します

1
static Boolean util.isUndefined(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、未定義の場合は True を返します

isRegExp

指定された変数が通常のオブジェクトかどうかをテストします

1
static Boolean util.isRegExp(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、通常のオブジェクトの場合は True を返します

isObject

指定された変数がオブジェクトかどうかをテストします

1
static Boolean util.isObject(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、オブジェクトの場合は True を返します

isDate

指定された変数が日付オブジェクトかどうかをテストします

1
static Boolean util.isDate(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、日付オブジェクトの場合は True を返します

isNativeError

指定された変数がエラー オブジェクトかどうかをテストします。

1
static Boolean util.isNativeError(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、エラーオブジェクトの場合はTrueを返します。

isPrimitive

指定された変数がプリミティブ型であるかどうかを確認します

1
static Boolean util.isPrimitive(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、プリミティブ型の場合は True を返します。

isSymbol

指定された変数の型が Symbol であるかどうかを確認します

1
static Boolean util.isSymbol(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、シンボル型の場合は True を返します。

isDataView

指定された変数が DataView 型であるかどうかを確認します。

1
static Boolean util.isDataView(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、DataView 型の場合は True を返します。

isExternal

指定された変数の型が外部かどうかを確認します。

1
static Boolean util.isExternal(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、外部型の場合は True を返します。

isMap

指定された変数が Map 型であるかどうかを確認します

1
static Boolean util.isMap(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、Map タイプの場合は True を返します。

isMapIterator

指定された変数が MapIterator 型であるかどうかを確認します

1
static Boolean util.isMapIterator(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、MapIterator 型の場合は True を返します。

isPromise

指定された変数が Promise 型であるかどうかを確認します

1
static Boolean util.isPromise(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、Promise タイプの場合は True を返します。

isAsyncFunction

指定された変数が AsyncFunction 型であるかどうかを確認します

1
static Boolean util.isAsyncFunction(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、AsyncFunction 型の場合は True を返します。

isSet

指定された変数が Set 型であるかどうかを確認します

1
static Boolean util.isSet(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、 Set 型の場合は True を返します。

isSetIterator

指定された変数が SetIterator 型であるかどうかを確認します

1
static Boolean util.isSetIterator(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • BooleanSetIterator 型の場合、True を返します。

isTypedArray

指定された変数が TypedArray 型であるかどうかを確認します

1
static Boolean util.isTypedArray(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、TypedArray 型の場合は True を返します。

isUint8Array

指定された変数が Uint8Array 型であるかどうかを確認します

1
static Boolean util.isUint8Array(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、Uint8Array 型の場合は True を返します

isFunction

指定された変数が関数オブジェクトかどうかをテストします

1
static Boolean util.isFunction(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、関数オブジェクトの場合は True を返します。

isBuffer

指定された変数が関数かどうかをテストしますBuffer物体

1
static Boolean util.isBuffer(Value v);

呼び出しパラメータ:

  • v: 検出される変数を指定した値

返される結果:

  • Boolean、関数の場合Bufferオブジェクトは True を返します

isDeepEqual

テスト値の深さが期待値と等しい

1 2
static Boolean util.isDeepEqual(Value actual, Value expected);

呼び出しパラメータ:

  • actual: 値、テストする値
  • expected:値、期待値

返される結果:

  • Boolean、深さが等しい場合は True を返します

has

指定されたオブジェクトに指定されたキーが含まれているかどうかを問い合わせます

1 2
static Boolean util.has(Value v, String key);

呼び出しパラメータ:

  • v: クエリ対象のオブジェクトを指定した値
  • key: 文字列、クエリするキーを指定します

返される結果:

  • Boolean、オブジェクトのすべてのキーの配列を返します。

keys

指定されたオブジェクトのすべてのキー配列をクエリします

1
static Array util.keys(Value v);

呼び出しパラメータ:

  • v: クエリ対象のオブジェクトを指定した値

返される結果:

  • Array、オブジェクトのすべてのキーの配列を返します。

values

指定されたオブジェクトのすべての値配列をクエリします。

1
static Array util.values(Value v);

呼び出しパラメータ:

  • v: クエリ対象のオブジェクトを指定した値

返される結果:

  • Array、オブジェクトのすべての値の配列を返します

clone

指定された変数のクローンを作成します。それがオブジェクトまたは配列の場合は、その内容を新しいオブジェクトにコピーします。

1
static Value util.clone(Value v);

呼び出しパラメータ:

  • v: クローンを作成する変数を指定した値

返される結果:

  • Value、クローン結果を返します

deepFreeze

オブジェクトをディープフリーズします。フリーズされたオブジェクトとそれに含まれるオブジェクトは変更できません。

1
static util.deepFreeze(Value v);

呼び出しパラメータ:

  • v: 値、フリーズするオブジェクトを指定します

extend

1 つ以上のオブジェクトのキー値を指定されたオブジェクトに拡張します

1 2
static Value util.extend(Value v, ...objs);

呼び出しパラメータ:

  • v: 値、拡張するオブジェクトを指定します
  • objs: ...、展開する 1 つ以上のオブジェクトを指定します

返される結果:

  • Value、展開された結果を返します

_extend

1 つ以上のオブジェクトのキー値を指定されたオブジェクトに拡張します。これは extend のエイリアスです

1 2
static Value util._extend(Value v, ...objs);

呼び出しパラメータ:

  • v: 値、拡張するオブジェクトを指定します
  • objs: ...、展開する 1 つ以上のオブジェクトを指定します

返される結果:

  • Value、展開された結果を返します

pick

を返すobject指定したキーの属性値のみをコピーしてフィルタリングします

1 2
static Object util.pick(Value v, ...objs);

呼び出しパラメータ:

  • v: 値、フィルターするオブジェクトを指定します
  • objs: ...、選択する 1 つ以上のキーを指定します

返される結果:

  • Object、フィルタリングされた結果を返します

omit

を返すobject指定したキーの属性値のみを除いてコピーします

1 2
static Object util.omit(Value v, ...keys);

呼び出しパラメータ:

  • v: 値、フィルターするオブジェクトを指定します
  • keys: ...、除外する 1 つ以上のキーを指定します

返される結果:

  • Object、除外された結果を返します

first

配列の最初の要素を取得します

1
static Value util.first(Value v);

呼び出しパラメータ:

  • v: 取得する配列を指定した値

返される結果:

  • Value、取得した要素を返します

配列の最初の複数の要素を取得する

1 2
static Value util.first(Value v, Integer n);

呼び出しパラメータ:

  • v: 取得する配列を指定した値
  • n: 整数、取得する要素の数を指定します

返される結果:

  • Value、取得した要素の配列を返します。

last

配列の最後の要素を取得します

1
static Value util.last(Value v);

呼び出しパラメータ:

  • v: 取得する配列を指定した値

返される結果:

  • Value、取得した要素を返します

配列の末尾にある複数の要素を取得する

1 2
static Value util.last(Value v, Integer n);

呼び出しパラメータ:

  • v: 取得する配列を指定した値
  • n: 整数、取得する要素の数を指定します

返される結果:

  • Value、取得した要素の配列を返します。

unique

配列要素の重複排除されたコピーを取得します。

1 2
static Array util.unique(Value v, Boolean sorted = false);

呼び出しパラメータ:

  • v: 複製される配列の値
  • sorted: ブール値、配列がソートされているかどうかを指定します。配列がソートされている場合は、高速アルゴリズムが使用されます。

返される結果:

  • Array、重複した要素を削除した後に配列を返します

union

1 つ以上の配列の値を一意の値を持つ配列に結合します

1
static Array util.union(...arrs);

呼び出しパラメータ:

  • arrs: ...、結合する 1 つ以上の配列を指定します

返される結果:

  • Array、マージされた結果を返します

intersection

1 つ以上の配列要素を除いた arr を含む配列の共通部分を返します。

1
static Array util.intersection(...arrs);

呼び出しパラメータ:

  • arrs: ...、交差の計算に使用する 1 つ以上の配列を指定します

返される結果:

  • Array、交差の計算結果を返します。

flatten

複数レベルのネストを持つ配列 (ネストは任意の数のレベルにすることができます) を 1 レベルのみの配列に変換します。浅いパラメータを渡すと、配列はネストの 1 次元のみに縮小されます。

1 2
static Array util.flatten(Value arr, Boolean shallow = false);

呼び出しパラメータ:

  • arr: 値、変換する配列を指定します
  • shallow: ブール値、ネストの 1 次元のみを削減するかどうかを指定します。デフォルトは false です。

返される結果:

  • Array、変換の結果を返します

without

arr 配列内の 1 つ以上の要素を除く、1 つ以上の要素を含む配列を返します。

1 2
static Array util.without(Value arr, ...els);

呼び出しパラメータ:

  • arr: 値、除外する配列を指定します
  • els: ...、除外する 1 つ以上の要素を指定します

返される結果:

  • Array、除外された結果を返します

difference

arr 配列内の要素を含む配列を返します。ただし、配列要素のないものは除きます。

1 2
static Array util.difference(Array list, ...arrs);

呼び出しパラメータ:

  • list: 配列、除外する配列を指定します
  • arrs: ...、除外する 1 つ以上の配列を指定します

返される結果:

  • Array、除外された結果を返します

each

リスト内のすべての要素を走査し、各要素を順番に出力します。 context パラメータが渡されると、イテレータは context オブジェクトにバインドされます。イテレータが呼び出されるたびに、3 つのパラメータ (要素、インデックス、リスト) が渡されます。

1 2 3
static Value util.each(Value list, Function iterator, Value context = undefined);

呼び出しパラメータ:

  • list: 値。走査するリストまたはオブジェクトを指定します。
  • iterator: 関数。トラバーサルに使用されるコールバック関数を指定します。
  • context: 値。イテレータを呼び出すときにバインドされるコンテキスト オブジェクトを指定します。

返される結果:

  • Value、リスト自体を返します

map

リスト内の各値は、変換関数 (反復子) を通じて新しい配列にマップされます。 context パラメータが渡されると、イテレータは context オブジェクトにバインドされます。イテレータが呼び出されるたびに、3 つのパラメータ (要素、インデックス、リスト) が渡されます。

1 2 3
static Array util.map(Value list, Function iterator, Value context = undefined);

呼び出しパラメータ:

  • list: 値。変換するリストまたはオブジェクトを指定します。
  • iterator: 関数、変換に使用されるコールバック関数を指定します
  • context: 値。イテレータを呼び出すときにバインドされるコンテキスト オブジェクトを指定します。

返される結果:

  • Array、変換の結果を返します

reduce

リスト内の要素を単一の値に減らします。 context パラメータが渡されると、イテレータは context オブジェクトにバインドされます。イテレータが呼び出されるたびに、3 つのパラメータ (メモ、要素、インデックス、リスト) が渡されます。

1 2 3 4
static Value util.reduce(Value list, Function iterator, Value memo, Value context = undefined);

呼び出しパラメータ:

  • list: 値。要約するリストまたはオブジェクトを指定します。
  • iterator: 関数、解決に使用されるコールバック関数を指定します
  • memo: 値、リダクションの初期値を指定します
  • context: 値。イテレータを呼び出すときにバインドされるコンテキスト オブジェクトを指定します。

返される結果:

  • Value、要約された結果を返します

parseArgs

コマンドライン文字列を解析し、パラメータリストを返します。

1
static NArray util.parseArgs(String command);

呼び出しパラメータ:

  • command: String、解析するコマンドライン文字列を指定します。

返される結果:

  • NArray、解析されたパラメータのリストを返します。

compile

スクリプトをバイナリコードにコンパイルします

1 2 3
static Buffer util.compile(String srcname, String script, Integer mode = 0);

呼び出しパラメータ:

  • srcname: 文字列、追加するスクリプトの名前を指定します
  • script: 文字列、コンパイルするスクリプト コードを指定します。
  • mode: 整数、コンパイル モード、0: モジュール、1: スクリプト、2: ワーカー、デフォルトは 0

返される結果:

  • Buffer、コンパイルされたバイナリコードを返します

util.compileスクリプトは、v8 内部実行データ ブロック (マシン以外で実行可能なコード) にコンパイルできます。コンパイルされたコードは、*.jsc として保存した後、run および require によって直接ロードして実行できます。

コンパイル後、ターゲット コードはソース コードを逆に取得することができないため、Function.toString に依存するプログラムは正しく動作しません。


sync

コールバック関数または非同期関数をラップして同期的に呼び出す

1 2
static Function util.sync(Function func, Boolean async_func = false);

呼び出しパラメータ:

  • func: ラップする必要がある関数を指定した関数
  • async_func: Boolean、func を非同期関数として処理することを指定します false の場合は自動判定されます。

返される結果:

  • Function、同期的に実行される関数を返します。

util.sync呼び出しを容易にするために、コールバック関数または非同期関数を同期関数に処理します。

コールバックの例は次のとおりです。

1 2 3 4 5 6 7 8 9 10 11
// callback var util = require('util'); function cb_test(a, b, cb) { setTimeout(() => { cb(null, a + b); }, 100); } var fn_sync = util.sync(cb_test); console.log(fn_sync(100, 200));

非同期の例は次のとおりです。

1 2 3 4 5 6 7 8 9
// async/await var util = require('util'); async function async_test(a, b) { return a + b; } var fn_sync = util.sync(async_test); console.log(fn_sync(100, 200));

非同期としてマークされていない Promise を返す関数の場合、同期モードを手動で指定できます。

1 2 3 4 5 6 7 8 9 10 11
// async/await var util = require('util'); function async_test(a, b) { return new Promise(function(resolve, reject) { resolve(a + b); }); } var fn_sync = util.sync(async_test, true); console.log(fn_sync(100, 200));

promisify

非同期呼び出し用のラップコールバック関数

1
static Function util.promisify(Function func);

呼び出しパラメータ:

  • func: ラップする必要がある関数を指定した関数

返される結果:

  • Function、非同期関数を返します

util.promisify呼び出しを容易にするために、コールバック関数を非同期関数として処理します。

コールバックの例は次のとおりです。

1 2 3 4 5 6 7 8 9 10 11
// callback var util = require('util'); function cb_test(a, b, cb) { setTimeout(() => { cb(null, a + b); }, 100); } var fn_sync = util.promisify(cb_test); console.log(async fn_sync(100, 200));

callbackify

コールバック呼び出し用の非同期関数をラップする

1
static Function util.callbackify(Function func);

呼び出しパラメータ:

  • func: ラップする必要がある関数を指定した関数

返される結果:

  • Function、コールバック関数を返す

util.callbackify呼び出しを容易にするために、非同期関数をコールバック関数に処理します。

非同期の例は次のとおりです。

1 2 3 4 5 6 7 8 9 10 11 12
// async var util = require('util'); async function async_test(a, b) { return a + b; } var fn_callback = util.callbackify(async_test); fn_callback(100, 200, (err, result) => { console.log(result); });

buildInfo

現在のエンジンとコンポーネントのバージョン情報を照会します。

1
static Object util.buildInfo();

返される結果:

  • Object、コンポーネントのバージョンオブジェクトを返します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ "fibjs": "0.25.0", "clang": "9.1", "date": "Jun 12 2018 07:22:40", "vender": { "ev": "4.24", "expat": "2.2.5", "gd": "2.2.4", "jpeg": "8.3", "leveldb": "1.17", "mongo": "0.7", "pcre": "8.21", "png": "1.5.4", "mbedtls": "2.6.1", "snappy": "1.1.2", "sqlite": "3.23.0", "tiff": "3.9.5", "uuid": "1.6.2", "v8": "6.7.288.20", "v8-snapshot": true, "zlib": "1.2.7", "zmq": "3.1" } }