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 bzip2 コマンドの使用

1. コマンドの紹介bzip2 は、ファイルの圧縮と解凍に使用されます。これは、Linux システム...

MySQL 8.0 でリモートアクセス権限を設定する方法

前回の記事では、MySQL パスワードをリセットする方法を説明しました。一部の学生から、データベース...

Linux のメモリ管理とアドレス指定の詳細な紹介

目次1. コンセプトメモリ管理モード住所種別分類例: 2. ページ管理x86 アーキテクチャ 32 ...

Linux で MySQL をインストールする簡単な方法

Linux に MySQL をインストールする方法をオンラインで検索すると、多くの方法が表示されまし...

MySQL ストアド プロシージャの in、out、inout パラメータの例と概要

ストアドプロシージャ1. ストアドプロシージャを作成し、グローバル変数を表示する mysql>...

Html、sHtml、XHtml の違いのまとめ

たとえば、<u>には終了文字がなく、ブラウザはそれを認識します。 SHTML は Ser...

正の整数かどうかを判断するMYSQLカスタム関数の例コード

関数を記述できます。主に正規表現を使用して判断を行います。入力文字が空の場合は、「-」を使用して置き...

HTML+SassはHambergurMenu(ハンバーガーメニュー)を実装します

先日、外国人の方がHTML+CSSを使ってHamburgerMenuを実装している動画を見ました。最...

Vue 円形パーセンテージ プログレスバー コンポーネントの機能の実装

必要な方はどなたでも参考にしてください。試してみて問題が見つかった場合は、メッセージを残してお知らせ...

MySQL での limit の使用方法は何ですか (推奨)

SELECT * FROM テーブル名制限m,n; SELECT * FROM テーブル LIMI...

フラッシュコンテンツの表示に使用される OBJECT タグと EMBED タグの違いの紹介

1. はじめに:ウェブページにフラッシュ コンテンツを正常に表示したい場合は、ページ上のフラッシュ ...

高性能なウェブサイトのための14のテクニック

オリジナル: http://developer.yahoo.com/performance/rule...

ウェブサイト開発におけるフロントエンド開発者とアーティストの知識の違い

概要: 多くの企業、特にインターネット Web サイトを主な事業とする企業のほとんどが、「アーティス...

Linux で Grafana をインストールし、InfluxDB モニタリングを追加する方法

Grafana をインストールします。公式 Web サイトでは、直接インストールできる Ubuntu...

WeChatアプレットが計算機機能を実装

この記事では、WeChatアプレットの計算機機能を実装するための具体的なコードを参考までに紹介します...