Node.js での組み込みモジュールとカスタムモジュールの実装

Node.js での組み込みモジュールとカスタムモジュールの実装

1. コモンズ

  • CommonjsはNode.jsのカスタムモジュールです
  • Commonjs 仕様は、JavaScript に標準がないという欠点を補い、バックエンド言語に似た標準ライブラリを提供するために提案されました。つまり、commonjs はモジュール標準であり、nodejs は commonjs のモジュール実装です。 nodejs では、http、url、fs などを除き、すべて nodejs の組み込みモジュールであり、直接使用できます。
  • commonjs でのカスタム モジュールの実装:
  • Node.js では、パブリック関数はモジュールとして別の js ファイルに抽出され、外部からアクセスすることはできません (バックエンドのプライベート プロパティとメソッドと同様)。モジュールを使用する場合は、エクスポートまたは module.exports を通じてモジュール内のプロパティまたはメソッドを公開する必要があります。必要な場所に require を使用してモジュールをインポートします。

2. モジュールエクスポートの2つのソリューション

解決策1

str={} とします。
モジュール.exports=str;

解決策2

str={} とします。
エクスポート.A = str;

3. カスタムモジュールの作成

共通.js

// ノード内の組み込みモジュールとカスタムモジュール // モジュールは 2 つのソリューションをエクスポートします let str={};
モジュール.exports=str;
エクスポート.A = str;

// モジュールをインポートするには、require("") を使用してモジュールを読み込みます。let todo = require("./todo"); // サフィックスは省略できます。console.log(todo);

js のドキュメント

モジュール.エクスポート={
   名前:"張三",
   スリープ:関数(){
       console.log("スリープ");
   }
}

または

モジュール.エクスポート={
   名前:"張三",
   スリープ:関数(){
       console.log("スリープ");
   }
}
  • node で require() を実行すると、モジュールをロードするときに名前を直接記述できますが、依存関係の下でロードされ、設定ファイルが生成されなければなりません。
  • ターミナルに依存関係ファイルを入力し、構成ファイルをインストールします
  • Nodejs は、node_modules ファイルの下にあるファイルを自動的に見つけることができます。node_modules ファイルの下にフォルダーがある場合は、cd を使用してこのファイルに入り、コマンド cnpm init --yes を使用して現在のファイルの package.json ファイルをインストールし、require("name"); を直接要求できます。

ケース1

共通.js

// モジュールをインポートするには、require("") を使用してモジュールを読み込みます。let todo = require("./todo"); // サフィックスは省略できます。console.log(todo);

// ノードで require() する場合、モジュールをロードするときに名前を直接記述できますが、依存関係の下でロードする必要があり、構成ファイルを生成する必要があります // ターミナルで依存関係ファイルを入力し、構成ファイルをインストールします let fetch=require("Fetch");
console.log(フェッチ);
fetch.get("http://www.zjm.com");

フェッチ

モジュール.エクスポート={
   取得(url){
       コンソールにログ出力します。
   }
}

ケース2

共通.js

Axios を require("Axios"); とします。
url = "https://autumnfish.cn/search";
data = { キーワード: '西安' };
定数 http = require("http");
app = http.createServer((req, res) => { を設定します。
   res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
   Axios.get(url, { params: data }).then((result) => {
       res.write(結果);
       res.end();
   });
});
アプリを聴く(8080)

アクシオス

定数 http = require("http");
定数 https = require("https");
//変換メソッドlet change = (args) => {
   str = "?" とします。
   for (let key in args) {
       str += キー + "=" + args[キー];
       str + = "&";
   }
   str.slice(0, str.length - 1)を返します。
}
モジュール.エクスポート = {
   get(href, { パラメータ }) {
       新しい Promise を返します ((resolve, reject) => {
           href += 変更(パラメータ);
           https.get(href, (res) => {
               { ステータスコード } = res; とします。
               エラーを起こす;
               ステータスコードが 200 の場合
                   error = new Error('リクエストが失敗しました。\n' +
                       `ステータス コード: ${statusCode}`);
               }
               if (エラー) {
                   コンソールエラー(エラーメッセージ);
                   // 応答データを消費してメモリを解放する
                   res.resume();
                   戻る;
               }
               // レスポンスのエンコーディングを設定します res.setEncoding("utf8");
               alldata = "" とします。
               //モニター datares.on("data", (info) => {
                   すべてのデータ += 情報;
               })
               res.on("end", () => {
                   data = alldata とします。
                   解決(データ);
               })
           });
       });
   },
   役職() {

   }
}

Node.js の組み込みモジュールとカスタムモジュールの実装に関するこの記事はこれで終わりです。より関連性の高い Node.js の組み込みモジュールとカスタムモジュールについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • フロントエンドのプログレッシブフレームワークVUEの簡単な紹介
  • vuex プログレッシブチュートリアルのサンプルコードの詳細な説明
  • Spring Boot Web アプリケーション構成の詳細な説明
  • Spring Boot を使用して Web アプリケーションを作成するためのサンプル コード
  • NodeJs の高メモリ使用量のトラブルシューティング実戦記録
  • Nodejs 組み込み暗号化モジュールを使用してピアツーピアの暗号化と復号化を実現する詳細な説明
  • node.js でマルチコア CPU を最大限に活用する方法
  • Node.js コード実行をバイパスするためのヒントのまとめ
  • プログレッシブ ウェブ アプリ (PWA) の開発方法

<<:  MySQLのユーザー権限の確認と管理方法の詳細な説明

>>:  Linux CentOS でスクリプトを定期的に実行するように設定する方法

推薦する

JavaScript ESの新機能letとconstキーワードに基づく

目次1. letキーワード1.1 基本的な使い方1.2 変動昇進はない1.3 一時的なデッドゾーン1...

Vue3 コンポジション API でロジックの再利用を実装する方法

Composition API はロジック再利用手順を実装します。ロジックコードを関数に抽出します。...

MySQL ストアド関数の詳細な紹介

目次1. ストアド関数を作成する2. ストアド関数の呼び出し3. 保存された関数を削除する4. スト...

Dockerでプロジェクトを実行する方法

1. プロジェクトwarが保存されているディレクトリを入力しますDockerfileを編集する vi...

Vue ローカルコンポーネントデータ共有 Vue.observable() の使用

コンポーネントが詳細になるにつれて、複数のコンポーネントが状態を共有する状況に遭遇するでしょう。Vu...

Reactドラッグフックを実装するための100行以上のコード

序文ソースコードは合計で 100 行強しかありません。これを読めば、react-dnd などの成熟し...

MySQL の厄介な Aborted 警告をケーススタディで分析する

この記事では主に、MySQL の Aborted アラームに関する関連コンテンツを紹介し、参考と学習...

MySQL データベース監視ソフトウェア lepus の使用上の問題と解決策

lepus3.7 を使用して MySQL データベースを監視中に、次の問題が発生しました。このブログ...

Vueカスタム命令とその使用方法の詳細な説明

目次1. 指令とは何ですか? Vue でよく使われる組み込みの v ディレクティブv-if と v-...

HTML における rel="nofollow" の役割と rel 属性の使用を分析する

リンクに rel="nofollow" 属性を追加すると、検索エンジンにこの接続...

ページ下部のフッターを修正する方法(複数の方法)

フロントエンド Web エンジニアとして、ページ効果を作成するときに次の現象に遭遇したことがあるはず...

Vue で Excel ストリーム ファイルをダウンロードし、ダウンロード ファイル名を設定する方法

目次概要1. URL経由でダウンロード2. aタグのダウンロード属性とblobコンストラクタを組み合...

VMware 15.5 に CentOS7 をインストールするためのグラフィック チュートリアル

1. VMware 15.5で新しい仮想マシンを作成する1. VMware を開き、ホームページで「...

WeChatアプレットコンポーネント開発:視覚的な映画座席選択機能

目次1. はじめに1. コンポーネントデータ2. コンポーネントページのレイアウト1. ロゴエリアの...

VMware esxi6.5 のインストールと使用の詳細な手順

目次導入建築ESXIの利点vSphere とは何ですか? 2. 仮想マシンの利点3. 仮想マシンを使...