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 でスクリプトを定期的に実行するように設定する方法

推薦する

Docker-compose ワンクリックデプロイ gitlab 中国語版の方法手順

1. GitLabの紹介Gitlab 公式アドレス: https://about.gitlab.co...

WeChatアプレットが複数行テキストのスクロール効果を実現

この記事の例では、WeChatアプレットで複数行のテキストスクロールを実装するための具体的なコードを...

jsはユーザーのページ操作を記憶するためにクッキーを使用します

序文開発プロセスでは、ブラウザレベルでユーザーが実行した操作を記憶するなど、同様の要件に遭遇すること...

Vue3における非親子コンポーネント通信の詳細な説明

目次最初の方法アプリ.vueホーム.vueホームコンテンツ.vueデータの応答性レスポンシブプロパテ...

パーソナライズされたクリエイティブなウェブサイトデザインの例 (30)

そこで、個性的なスタジオやフリーランスを表現する組み合わせを 30 個選びました。デザインを目立たせ...

MySQLデータベースでゼロ値を含む日付の問題について簡単に説明します

デフォルトでは、MySQL は日付に 0 値を挿入することを受け入れますが、実際には日付の 0 値に...

Nginx Rewriteモジュールを使用するいくつかのシナリオ

アプリケーションシナリオ1: ドメイン名ベースのリダイレクト会社の古いドメイン名は www.accp...

CSS メニューボタンアニメーション

ドロップダウンメニューを書くには、ボタンをクリックします。メニューの入り口はアイコンボタンをクリック...

4種類のMySQL接続とマルチテーブルクエリの詳細な説明

目次MySQL 内部結合、左結合、右結合、外部結合、複数テーブルクエリビルド環境: 1. 内なる慈恩...

CentOS7でパーティションのサイズを変更する方法

昨日、ある人のシステムのインストールを手伝ったのですが、自動パーティション分割をクリックするのを忘れ...

Linux の MySQL でリモート接続を承認する方法

注意: 他のマシン (IP) は、承認なしではクライアント経由で MySQL データベースに接続でき...

iostat を使用して Linux ハードディスクの IO パフォーマンスを表示する方法

TOP 観察: IO 待機に占められる CPU 時間の割合。30% を超えると、IO の負荷が高くな...

MLSQLコンパイル時権限制御例の詳細な説明

序文MySQL の権限を簡単に理解すると、MySQL では自分の能力の範囲内で操作が許可され、その限...

MySQL 8.0.16 Win10 zip バージョンのインストールと設定のグラフィック チュートリアル

この記事では、MySQL 8.0.16 Win10 zip版のインストールと設定のグラフィックチュー...

MacにMySQLをインストールするときに忘れたパスワードを変更する方法

1. MacにMySQLデータベースをインストールする1. MySQLデータベースをダウンロードする...