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

推薦する

JavaScript 配列の include と Reduce の基本的な使用法

目次序文配列.プロトタイプ.includes文法パラメータ戻り値例配列プロトタイプの削減文法パラメー...

Linux の圧縮および解凍コマンドの紹介

目次一般的な圧縮形式: gz .bz2 .xz .zip一般的に使用されるアーカイブは圧縮を必要とす...

よくある Linux 英語エラーの中国語翻訳 (初心者必見)

1.コマンドが見つかりません コマンドが見つかりません2. そのようなファイルまたはディレクトリは...

CSS ポインターイベント属性の使用に関する詳細な説明

フロントエンド開発では、ユーザーと直接やり取りするため、ユーザーが操作がスムーズで快適だと感じ、ネイ...

Chromeブラウザの自動パスワード保存プロンプト機能を無効にする方法

注: Web 開発では、フォームに autocomplete="off" を追加...

Dockerコンテナ同士を接続する3つの方法の詳しい説明

Docker コンテナ間の相互接続と通信には 3 つの方法があります。 Docker 内部ネットワー...

Vueは要素ツリーコントロールを通じてツリーテーブルを実装します

目次実装効果図依存関係をインストールするカスタムツリーコントロールその他の実装要約するVueでは、要...

CSS のフィルター属性とバックドロップフィルターの適用と違いの詳細な説明

フィルターとバックドロップフィルターにはいくつかの違いがあります。フィルターは現在の要素だけでなく、...

JSを段階的に学ぶ方法についての簡単な説明

目次概要1. jsの位置づけを明確に理解する2. 明確な学習パス3. 自己規律と粘り強さ4. 練習し...

ウェブデザインの詳細分析に関する詳細な議論

設計業務では、設計者がレビューに参加したり、リーダーの一部が設計案の詳細が足りないと言っているのをよ...

フレームセットを使用してワイドスクリーンを中央に配置するためのヒントを共有する

コードをコピーコードは次のとおりです。 <フレームセット cols="*,1280,...

ドラッグ効果を実現するための純粋なCSSコード

目次1. ドラッグ効果の例2. CSS実装の原則3. CSS実装の詳細4. CSSレイアウト1. 固...

Linuxでのaliasコマンドの使い方の詳細な説明

1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...

ミニプログラム録画機能の実装

序文ミニプログラムを開発する過程では、録音機能を実装し、録音を再生し、録音をサーバーにアップロードす...

Tomcatがセッションを管理する方法の例

ConcurrentHashMapを学習しましたが、どのように適用すればよいかわかりませんか? To...