Nodejs プラグインと使用方法の概要

Nodejs プラグインと使用方法の概要

このチュートリアルの動作環境: Windows 7 システム、nodejs バージョン 12.19.0、DELL G3 コンピュータ。

Nodejsプラグイン

1. Node-xlsxはExcelを読み書きします

Excel ファイルのインポートとエクスポートは多くのシステムで共通の問題であり、NodeJS も例外ではありません。ここでは、NodeJS を使用して Excel ファイルの読み取りと書き込みを行います。

NodeJS では、ファイルの読み取りと書き込みに node-xlsx というサードパーティ ツールを使用します。このモジュールは、2003 Excel (.xls) 形式と 2007 Excel (.xlsx) 形式の両方をサポートしています。

さて、このモジュールの具体的な動作を見てみましょう

Excel での読み取り操作

まず、このモジュールをインストールする必要があります

cnpm インストール node-xlsx --save

2番目のステップは、モジュールをインポートしてExcelファイルを読み込むことです。

const xlsx=require('node-xlsx');const DBUtil=require('./utils/DBUtil.js');const fs=require('fs');const path=require('path');function readExcel(path){
  var excel=xlsx.parse(パス);
  excel を返します。}var obj=readExcel(path.join(__dirname,"./files/studentinfo.xls"));console.log(obj[0].data);

上記のコードでExcelファイルの読み取り操作が完了しました。この時点でオブジェクトを読み取り、その中の情報をコンソールで確認できます。

Excelへの書き込み

ここで、データベース内のテーブルの情報を読み取り、ローカルコンピュータに保存する方法を説明します。コードは次のとおりです。

const excel=require('node-xlsx');const fs=require('fs');const path=require('path');const DBUtil=require('./utils/DBUtil.js');function writeExcel(){
  var conn = DBUtil.getConn();
  conn.query("studentinfoから*を選択",[],(err,result)=>{
    もしエラーが起きたら
 
    }
    それ以外{
      var excelArr = [];
      var ヘッダー行 = [];
      for(var i in result[0]){
        ヘッダー行をプッシュします(i);
      }
      excelArr.push(ヘッダー行);
      for(var i=0;i<result.length;i++){
        var temp = [];
        for(var j=0;j<headerRow.length;j++){
          temp.push(結果[i][ヘッダー行[j]]);
        }
        excelArr.push(temp);
      }
      試す {
        var buff=excel.build([{name:'学生情報',data:excelArr}]);
        fs.writeFileSync(path.join(__dirname,"./files/01.xlsx"),buff);
        console.log("OK");
      } キャッチ(エラー){
        コンソールログ(エラー);
      }
    }
  });
  conn.end();}writeExcel();

ここで、Excelへの書き込みが少し面倒であることがわかります。なぜなら、ここでは、データベースで得られた結果を再結合してExcelを生成する必要があるからです。

考えてみてください。Express フレームワークでは、生成された Excel ファイルをユーザーが次のようにダウンロードしてローカルに保存できるとしたらどうでしょうか?

2. Nodemailerはメールを送信します

Nodejs には、ユーザーにメールを送信するための多くの使用シナリオがあります。たとえば、ユーザーが登録すると、登録メッセージがユーザーの登録済みメールボックスに送信されることがよくあります。現時点では、この機能を実現するには、nodemailer のサードパーティ モジュールを使用する必要があります。具体的な使用手順は次のとおりです。

対応するモジュールをインストールする

$ cnpm インストール nodemailer --asve
$ 糸を追加ノードメーラー

モジュールをインポートしてコードを完成させる

定数 nodemailer = require('nodemailer'); var transport = nodemailer.createTransport({
  サービス:"qq",
  認証:
    ユーザー:"[email protected]",
    パス:"peshapwpokgvcahe"
  }});var オプション = {
  送信者:"[email protected]",
  宛先:"[email protected]",
  件名:「これは nodemailer から送信された電子メール メッセージです」
  テキスト: "これは nodemailer から送信された電子メール メッセージです" + (new Date()).toLocaleString(),
  html:"<h2>これは <u>nodemail</u> からのテストメールです...</h2>"}; transport.sendMail(options,(err,info)=>{
  もしエラーが起きたら
    コンソールログ(エラー);
  }
  それ以外{
    コンソールログ(情報);
  }});

送信成功後のメッセージ

{ 受け入れられました: [ '[email protected]' ],
  拒否: [],
  封筒時間: 221,
  メッセージ時間: 830,
  メッセージサイズ: 801,
  応答: '250 Ok: キューに追加されました'、
  封筒: { 送信元: '[email protected]'、 宛先: [ '[email protected]' ] },
  メッセージ ID: '<[email protected]>' }

この時点で、プログラムがこの場所で送信要求を完了できれば、上記の情報が返されます。上記の情報が表示されない場合は、ここで返されたエラーを確認する必要があります。

注: 送信サーバーを設定する場合、サードパーティのサーバーまたは組み込みサーバーを使用できます。

考えてみると、送信したコンテンツがテンプレートに置き換えられた場合

const fs = require('fs'); const path = require('path'); クラス MailTemplateModel {
  コンストラクター(ユーザー名、u_id、登録時刻、メール){
    this.userName=ユーザー名;
    u_id は、次のとおりです。
    this.registerTime=登録時間;
    this.mail=メール;
  }
  文字列(){
    var str = `親愛なる${this.userName}様 こんにちは!
    会員登録を歓迎します。あなたのアカウントは ${this.u_id} で、登録時間は ${this.registerTime} です。
    アカウントとパスワードを安全に保管してください。ご質問がある場合は、${this.mail} までメールをお送りください。
    ありがとう!幸せな人生をお祈りします! `;
    str を返します。
  }}module.exports=メールテンプレートモデル;

上記のコードは、送信する電子メールの内容をオブジェクトにカプセル化し、テンプレート構文を使用して文字列を連結します。

考えてみてください。送信するメールの内容を別の外部 txt ファイルに書き込み、String オブジェクトの置換を通じて実装します。この機能をどのように実装するのでしょうか?

3. 子プロセス

サブプロセスを作成し、シェル スクリプトを実行できます。

4. ノードの可読性

ウェブサイトのコンテンツをシンプルなコンテンツに変換できるプラグイン。

5. 接続する

実は express もこのプラグインを使っており、connect を使って Web プログラムを書くこともできます。

6. エクスプレスセッション

これはセッション プラグインです。デフォルトは永久ですが、Tomcat の 30 分とは異なるため、タイムアウトを自分で設定する必要があります。

7. 基本認証プラグイン

最も単純な認証方法に使用され、通常は API リクエストで使用されます。

8. bcryptjs プラグイン (bcrypt のインストール中に常にエラーを報告します)

ソルトを使用してハッシュ処理を行う場合に使用します。

9. 爬虫類コレクション:

(1) 静的ページと API データのクロール: request+cheerio/jsdom。 request は、投稿をリクエストして情報を取得できるリクエスト ライブラリです。 HTML データを取得した後、cheerio などのサードパーティの解析ライブラリを使用して解析できます。 js 動的レンダリング ページの場合は、jsdom の使用を検討できますが、残念ながら、これは同期的であり、結局のところブラウザーではありません。

(2)動的にレンダリングされたページのクロール

puppeteer: Chromium ブラウザを使用し、リクエストが非同期で、効率が高く、多くのブラウザ操作 API が公開されており、非常に便利です。

nightmare: API は、electron のブラウザを使用して非常に簡単に使用できます。使用したことはありませんが、puppeteer ほど柔軟ではないと感じています。

jsdom:sync のせいで、使用を諦めました。セレンと同じです。

10. モーメント

軽量なフォーマット解析ライブラリです。フォーマット解析関数を自分で書くと数十行の関数コードが必要になります。これはとても便利です。

これで、Node.js プラグインとその使用法に関するこの記事は終了です。Node.js プラグインの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  ボックスモデルのサイズの詳細な説明は、パディング、マージン、境界の値によって異なります。

>>:  MySQLデータベースを定期的に自動バックアップする方法

推薦する

LinuxシステムのAnsible自動運用保守導入方法

Ansible は、Python をベースに開発された新しい自動運用・保守ツールです。 多くの古い運...

HTML ページ共通スタイル (推奨)

以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピーbody、di...

Docker を使用して Redis マスター スレーブ レプリケーション クラスターを構築する

マスタースレーブレプリケーションモードのクラスターでは、通常、1 つのマスターノードと 2 つ以上の...

NFS サーバーの原理と、その構築、構成、展開の手順を簡単に分析します。

目次NFS サービスの概要NFS とは何ですか? NFS マウントの原則NFS サーバーはデータ転送...

JS でカルーセル効果を実現する 3 つの簡単な方法

この記事では、JSカルーセル効果の具体的なコードを実現するための3つの方法を紹介します。具体的な内容...

MySQL を使用して Excel でデータ生成を完了する方法

Excel は、データ分析に最もよく使用されるツールです。この記事では、MySQL と Excel ...

docker-compose で Jenkins をインストールする際の実践的なメモ

ディレクトリを作成する cd /usr/local/docker/ jenkins-docker を...

MySQL の遅いクエリ操作の例の分析 [有効化、テスト、確認など]

この記事では、MySQL のスロー クエリ操作について例を挙げて説明します。ご参考までに、詳細は以下...

Linux仮想マシンをWiFiに接続する方法

生活の中で、インターネットはどこにでもあります。インターネットを通じてゲームをしたり、テレビ番組を見...

Linux で MySQL のデフォルト エンコーディングを変更する方法

開発プロセス中に、MySQL データベースを復元した後にデータベース データに文字化けが発生した場合...

トークンの有効期限が切れたときにページを更新するときに繰り返しプロンプトが表示されないようにする Vue について

トークンの有効期限が切れたら、ページを更新します。ページの読み込み時にバックエンドに複数のリクエスト...

TypeScript の関数

目次1. 関数の定義1.1 JavaScript の関数1.2 TypeScriptの関数2. オプ...

IDEA は Docker プラグインを使用します (初心者向けチュートリアル)

目次例示する1. Dockerリモートアクセスを有効にする2. Dockerに接続する3. イメージ...

K8S クラスターを構築し、Hyper-V で Docker をインストールする方法

Win10 システムをインストールしていて、k8s クラスターを構築する場合、Win10 に付属する...

Docker を使用して Spring Boot をデプロイする方法の例

ここでは主に、スタンドアロンのプログラムを生成できるspring-bootと、Mavenプラグインd...