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 が天気予報機能を実装

この記事では、天気予報機能を実現するためのVueの具体的なコードを参考までに共有します。具体的な内容...

主軸上のFlex子要素の比率を制御する方法

背景フレックス レイアウトにより、配置とスペースの割り当てがより効果的に実現されます。最近、flex...

CentOS7 ファイアウォールとポート関連コマンドの紹介

目次1. ファイアウォールの現在の状態を確認する2. ファイアウォールサービスを開始する3. ファイ...

CentOS システムの rpm インストールと Nginx の設定

目次CentOS rpm のインストールと Nginx の設定導入rpm パッケージのインストールサ...

LinuxテキストエディタVimの詳しい説明

Vim は強力なフルスクリーン テキスト エディターであり、Linux/UNIX で最も一般的に使用...

シンプルな CSS テキストアニメーション効果

成果を達成する 実装コードhtml <div id=コンテナ> いらっしゃいませ <...

MySQLで最新のトランザクションIDを照会する方法

前に書いた内容: ビジネス ロジックの判断を行うために、最新のトランザクション ID を表示する必要...

ラベルとボタンを削除し、背景画像の点線/影を追加すると完璧な解決策になります

ユーザーが登録すると、ラベルをクリックして確認コードを変更します。クリックするとラベルに影の部分がで...

Nginx + consul + upsync を使用して動的負荷分散を実現する方法の詳細な説明

目次前提条件DNSドメイン名解決プロセス外部ネットワークマッピングnginxコア知識nginxとはア...

Dockerを使用して外部からアクセス可能なMySQLを構築する詳細な説明

MySQL 8.0をインストールする docker run -p 63306:3306 -e MYS...

ディレクトリスクロール効果を実現するネイティブJS

これはネイティブ JS で実装されたテキスト スクロール効果です。この効果は通常、ニュース、ダイナミ...

10分で始めるCSS3アニメーション

導入アニメーションを使用すると、JavaScript や jQuery に依存せずに、純粋な CSS...

Linuxパフォーマンス監視コマンドの簡単な紹介

システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...

Vue フロントエンドと Django バックエンドを使用して、一定期間内のデータをクエリする方法

序文開発プロセスでは、すべてのデータではなく特定の期間内のデータをクエリするなど、クエリのフィルタリ...

HTML 画像 img タグ_Powernode Java アカデミー

まとめプロジェクトの説明形式<img src="..."> H2+ ...