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

推薦する

React Native APPのアップデートに関する簡単な説明

目次アプリ更新プロセス大まかなフローチャートアプリ情報の更新1. まず取得する必要があるファイルアド...

MySQLの明示的な型変換の簡単な分析

CAST関数前回の記事では、型変換を表示するために使用する CAST 関数について説明しました。暗黙...

Gogs+Jenkins+Docker による .NetCore ステップの自動デプロイ

目次環境説明DockerのインストールゴグのインストールDocker で .NetCore サービス...

MySQL データ型の最適化の原則

MySQL は多くのデータ型をサポートしており、高パフォーマンスを得るには適切なデータ型を選択するこ...

Vueユーザーが長時間操作せずにログインページからログアウトするように実装する2つの方法

目次問題の説明フロントエンド制御(方法1)アイデアコードバックエンド制御(方法2)アイデアコード要約...

nginx のフロントエンドとバックエンドに同じドメイン名を設定する方法

この記事では、主にnginxのフロントエンドとバックエンドに同じドメイン名を設定する方法を紹介し、皆...

Ubuntu 18.0.4 は mysql をインストールし、エラー 1698 (28000): ユーザー ''root''@''localhost'' のアクセスが拒否されましたを解決します

序文最近 Linux を学び、その後 Win から Ubuntu に変更しました。以前インストールし...

Linux オペレーティング システムでよく使用される MySQL コマンドの概要

以下に、一般的な MySQL コマンドをいくつか示します。 -- データベース サービスを開始します...

JS 継承の詳細

目次序文準備する要約する継承方法プロトタイプ継承プロトタイプチェーン継承コンストラクタの借用(クラス...

Vue プロジェクトで SVG コンポーネントをパッケージ化して構成する手順

最近新しい会社に入社しました。プロジェクトに携わった後、タイトルアイコンが svg で作られていると...

JavaScript タイピングゲーム

この記事では、タイピングゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...

Docker でローカルにイメージをインポート/保存/読み込み/削除する方法

1. Dockerはローカルイメージをインポートする場合によっては、イメージをローカルまたは別の友人...

Vueウォッチの監視方法の概要

目次1. Vueにおけるwatchの役割はその名の通り、監視の役割です。 2. このオブジェクトのプ...

MySQL 条件付きクエリと使用法および優先順位の例の分析

この記事では、例を使用して、MySQL 条件クエリ and or の使用方法と優先順位を説明します。...