node.jsのコアモジュールとは

node.jsのコアモジュールとは

グローバルオブジェクト

ブラウザ JS では、window は通常グローバル オブジェクトですが、nodejs のグローバル オブジェクトはグローバルであり、すべてのグローバル変数はグローバル オブジェクトのプロパティです。

Node.js で直接アクセスできるオブジェクトは通常、コンソール、プロセスなどのグローバル プロパティです。

グローバルオブジェクトとグローバル変数

global の最も基本的な役割は、グローバル変数のホストとして機能することです。

グローバル変数の条件:

最も外側のレベルで定義された変数、グローバル オブジェクトのプロパティ、暗黙的に定義された変数 (値が直接割り当てられていない変数)

グローバル オブジェクトのプロパティでもあるグローバル変数を定義します。

グローバル変数は名前空間を汚染し、コード結合のリスクを高めるため、グローバル変数の導入を避けるために、常に var を使用して変数を定義します。

プロセス

プロセスはグローバル変数、つまりグローバル オブジェクトのプロパティです。これは、Node.js プロセス オブジェクトの状態を記述し、オペレーティング システムとのシンプルなインターフェイスを提供するために使用されます。

process.argv はコマンドラインパラメータ配列です。最初の要素はノード、2 番目はスクリプトファイル名、3 番目以降の各要素は実行パラメータです。

console.log(プロセス.argv);

process.stdout は標準出力ストリームです。

process.stdin は標準入力ストリームです。

process.nextTick(callback) の機能は、イベント ループのタスクを設定することであり、次にイベント ループが応答したときにコールバックが呼び出されます。

process.platform、process.pid、process.execPath、process.memoryUsage() などもあります。 POSIX プロセス シグナル応答メカニズム。

コンソール

コンソールの標準出力を提供するために使用されます。

  • コンソールログ()
  • コンソール.エラー()
  • コンソール.トレース()

一般的なツールユーティリティ

util は、コア js の過度に合理化された機能の欠点を補うためによく使用される関数のコレクションを提供する Node.js コア モジュールです。

util.inherits は、オブジェクト間のプロトタイプ継承のための関数を実装します。 js オブジェクト指向機能はプロトタイプに基づいています。

任意のオブジェクトを文字列に変換する util.inspect メソッド。

util.isArray()、util.isRegExp()、util.isDate()、util.isError()、util.format()、util.debug() など。

イベントメカニズムイベント - イベントモジュール

イベントは NodeJs の最も重要なモジュールです。 NodeJs のアーキテクチャ自体はイベントベースであり、独自のインターフェースを提供するため、NodeJs イベントプログラミングの基礎と言えます。

イベントエミッター

events モジュールは、events.EventEmitter という 1 つのオブジェクトのみを提供します。その中核は、イベント発行とイベント監視関数のカプセル化です。

EventEmitter でよく使用される API:

  • EventEmitter.on(event, listener) は、文字列イベントとコールバック関数リスナーを受け入れて、指定されたイベントのリスナーを登録します。
  • EventEmitter.emit(event, [arg1], [arg2], [...]) は、イベントリスナーのパラメータリストにいくつかのオプションパラメータを渡して、イベントイベントを発行します。
  • EventEmitter.once(event, listener) は、指定されたイベントの 1 回限りのリスナーを登録します。つまり、リスナーは最大で 1 回だけトリガーされ、トリガーされた直後にリスナーは解放されます。
  • EventEmitter.removeListener(event, listener) は、指定されたイベントのリスナーを削除します。リスナーは、イベントに登録されているリスナーである必要があります。
  • EventEmitter.removeAllListeners([event]) は、すべてのイベントのすべてのリスナーを削除します。event が指定されている場合は、指定されたイベントのすべてのリスナーが削除されます。

エラーイベント

例外が発生すると、通常はエラー イベントが発生します。

EventEmitter の継承

EventEmitter は直接使用されるのではなく、オブジェクトから継承されます。 fs、net、http を含み、コア モジュールがイベント応答をサポートしている限り、EventEmitter のサブクラスになります。

ファイルシステム fs--fs モジュール

ファイル操作のカプセル化により、読み取り、書き込み、名前変更、削除、ディレクトリの移動、ファイルのリンクなどの POSIX ファイル システム操作が提供されます。非同期と同期の 2 つのバージョンがあります。

fs.readFile(filename, [encoding], [callback(err, data)]) は、ファイルを読み取る最も単純な関数です。

var fs = require("fs");
fs.readFile("server.js", "utf-8", function(err, data){
もし(エラー){
    コンソールログ(エラー);
}それ以外{
    コンソールにログ出力します。
}})

fs.readFileSync

fs.readFileSync(filename, [encoding]) は fs.readFile の同期バージョンです。 fs.readFile と同じパラメータを受け入れ、読み取られたファイルの内容が関数の戻り値として返されます。エラーが発生した場合、fs は例外をスローします。この例外は、try と catch を使用してキャプチャして処理する必要があります。

fs.open

fs.read

一般的に言えば、上記の 2 つの方法は、必要な場合を除いてファイルの読み取りには使用しないでください。特にファイル サイズがわからない場合は、バッファーとファイル ポインターを手動で管理する必要があり、非常に面倒なことになります。

HTTP モジュール

http モジュールは主に、http サービスの構築、ユーザー要求情報の処理などに使用されます。

httpリクエストの使用

定数 http = require('http');
// httpリクエストの送信に使用 const options = {
  プロトコル: 'http:',
  ホスト名: 'www.baidu.com',
  ポート: '80'、
  メソッド: 'GET'、
  パス: '/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg'
};
応答データを '' とします。
const リクエスト = http.request(オプション、レスポンス => {
  console.log(response.statusCode); // リンクリクエストのステータスコードを取得します。 response.setEncoding('utf8');
  レスポンス.on('データ', チャンク => {
    応答データ += チャンク;
  });
  レスポンス.on('end', () => {
    console.log(応答データ);
  });
});
リクエスト.on('エラー', エラー => {
  コンソール.log(エラー);
});
リクエストを終了します。

http を使用してサービスを作成する

// http を使用してサーバーを作成します。const port = 3000;
定数ホスト = '127.0.0.1';
定数サーバー = http.createServer();
server.on('リクエスト', (リクエスト, レスポンス) => {
  レスポンス.writeHead(200, {
    'コンテンツタイプ': 'text/plain'
  });
  レスポンスの終了('Hello World\n');
});
server.listen(ポート、ホスト、() => {
  console.log(`サーバーはhttp://${host}:${port}/で実行されています`);
});

バッファ、暗号暗号化、ストリームの使用、ネット ネットワーク、OS オペレーティング システムなど、Node コア モジュールは他にも多数あります。

上記は、node.js コアモジュールの詳細な内容です。node.js コアモジュールの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Node.js のモジュール性、npm パッケージ マネージャーの説明
  • Node.js の fs モジュールと Path モジュールのメソッドの詳細な説明
  • Node.js http モジュールの使用
  • node.jsのモジュールシステムについて話す
  • Node.js におけるモジュール化の詳細な説明

<<:  Nginx コンテンツ キャッシュと共通パラメータ設定の詳細

>>:  1時間で学ぶMySQLの基礎

推薦する

Vue グローバル フィルターの概念、注意事項、基本的な使用方法

目次1. フィルターの概念1. グローバルフィルターのフォーマットをカスタマイズする2. フィルター...

JavaScript デザインパターン プロキシパターンの学習

目次概要実装保護エージェント仮想エージェント画像の遅延読み込みを実現する仮想プロキシ概要プロキシ パ...

CentOS6.5にpython3.7をインストールする詳細な手順

1. Python 3をダウンロードする https://www.python.org/ftp/py...

Vue3 テーブルコンポーネントの使用

目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...

InnoDB がシリアル化分離レベルを実装する方法

シリアル化の実装InnoDB は 2 つの方法でシリアル化を実装します。まず、SELECT 文が明示...

Vue-router は現在の場所 (/path) へのナビゲーションを許可しません。エラーの原因と修正

目次エラーメッセージ原因エラーのデモンストレーション回避策方法1方法2方法3エラーメッセージ現在の場...

MySQL で数千万のテストデータを含むテストデータベースを作成する方法

場合によっては、MySQL が公式に提供しているテスト ライブラリに基づいてテスト データを作成し、...

Web ページ WB.ExecWB 制御印刷メソッド呼び出しの説明とパラメータの紹介

WebページWB.ExecWB制御印刷方法コードをコピーコードは次のとおりです。 <テーブルの...

HTML 背景画像と背景色_PowerNode Java アカデミー

1. HTML 画像 <img> 1. <img> タグとその src 属性...

Spark RDD をデータフレームに変換し、それを MySQL に書き込む例

DataframeはSpark 1.3.0で導入された新しいAPIで、Sparkで大規模な構造化デー...

MySql8.0 のトランザクション分離レベルエラーの問題を解決する

目次MySql8.0 トランザクション分離レベルエラーの表示質問コマンドは次のように変更されますMy...

Vue で円形プログレスバーを実装する例

データ表示は、常にあらゆる職業の人々が求めているものです。特にフロントエンド開発業界では、データを表...

Docker Compose マルチコンテナデプロイメントの実装

目次1. WordPressの導入1. 環境を整える(II) イメージを実行するDocker の作成...

静的リソースファイルのアクセスログをフィルタリングするNginxの実装

乱雑なログ日常的に使用される Nginx は、静的リソース サーバーとリバース プロキシ サーバーの...

MySQL 5.7.17 インストール グラフィック チュートリアル (Windows)

最近データベースを学び始めたのですが、とても興味深いコースだと感じていますが、含まれる内容の多くは私...