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の基礎

推薦する

Windows Server 2008R2 ファイル サーバーを Windows Server 2016 にアップグレードする

ユーザー組織には、ドメインに参加している 2 台の Windows Server 2008 R2 フ...

MySQL innodb例外の修復に関する経験の共有

テスト用の MySQL ライブラリのセット。以前使用されていたバージョンは、centos6 のデフォ...

HTMLエンコードによる文字化け問題について

今日、3年生から質問がありました。彼が書いた HTML コードを開くと、文字化けした文字が表示されま...

MySQL 5.7.18 無料インストール版ウィンドウ設定方法

初めてのブログです。データベースの勉強を始めた頃のことを書いています。自分でダウンロードしたのですが...

HTML チュートリアル: DOCTYPE の省略形

HTML コードを書くとき、最初の行は DOCTYPE にする必要がありますが、DOCTYPE は通...

MySQLデュアルマシンホットスタンバイと負荷分散の実装手順の詳細説明

MySQL データベースには増分バックアップ メカニズムはありませんが、マスター データベース内のす...

React forwardRefの使い方と注意点

これまで react.forwardRef は react の高階コンポーネントには適用できませんで...

mysqlパラメータsql_safe_updatesを使用して更新/削除範囲を制限する方法の詳細な説明

序文皆さんご存知のとおり、MySQL の運用・保守において、更新/削除条件が誤っているためにデータが...

RedHat 6.5 に MySQL 5.7 をインストールするための詳細なチュートリアル

RedHat6.5インストールMySQL5.7チュートリアル共有、参考までに、具体的な内容は次のとお...

Vue でスクロールバーのスタイルを変更する方法

目次まず、スクロール バーのスタイルを変更するには、疑似要素-webkit-scrollbarを使用...

Tomcatの各ポートの機能の詳細な説明

tomcat 設定ファイルから、tomcat の起動時にデフォルトで 8080 (8443)、800...

Linux システムで tcpdump を使用してパケットをキャプチャする方法

まずサンプルコードを見てみましょう: 1. 共通パラメータ tcpdump -i eth0 -nn ...

Apache Superset を使用して ClickHouse データを視覚化する 2 つの方法

Apache Superset は、データを表示および探索する方法を提供する強力な BI ツールで...

LINUX ポートが占有されているかどうかを確認します

ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...