ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejs プラグインとは何ですか?

Nodejs プラグインとは何ですか?

青灯夜游
青灯夜游オリジナル
2021-11-23 17:27:002165ブラウズ

Nodejs プラグインには、「node-xlsx」、nodemailer、「node-readbility」、connect、「express-session」、「basic-auth」、bcryptjs、puppeteer、nightmare などが含まれます。

Nodejs プラグインとは何ですか?

#このチュートリアルの動作環境: Windows7 システム、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 install 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(path);
  return 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("select * from studentinfo",[],(err,result)=>{
    if(err){

    }
    else{
      var excelArr=[];
      var headerRow=[];
      for(var i in result[0]){
        headerRow.push(i);
      }
      excelArr.push(headerRow);
      for(var i=0;i<result.length;i++){
        var temp=[];
        for(var j=0;j<headerRow.length;j++){
          temp.push(result[i][headerRow[j]]);
        }
        excelArr.push(temp);
      }
      try {
        var buff=excel.build([{name:&#39;学生信息&#39;,data:excelArr}]);
        fs.writeFileSync(path.join(__dirname,"./files/01.xlsx"),buff);
        console.log("ok");
      } catch (error) {
        console.log(err);
      }
    }
  });
  conn.end();}writeExcel();

ここで、Excel に書き込むのは少し面倒であることがわかりました。ここでは、データベースで得られた結果を再結合して Excel

Thinking を生成する必要があります。Express フレームワークで生成された場合、ユーザーがダウンロードして保存できる Excel ファイルは次のとおりです。地元で?

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

nodejs には、ユーザーに電子メールを送信するための多くの使用シナリオがあります。 , 登録情報がユーザーの登録済みメールボックスに送信されます。この時点で、この機能を完了したい場合は、nodemailer のサードパーティ モジュールを使用する必要があります。具体的な手順は次のとおりです:

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

$ cnpm install nodemailer --asve
$ yarn add nodemailer

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

const nodemailer=require(&#39;nodemailer&#39;);var transport = nodemailer.createTransport({
  service:"qq",
  auth:{
    user:"365055754@qq.com",
    pass:"peshapwpokgvcahe"
  }});var options={
  from:"365055754@qq.com",
  to:"lovesnsfi@live.com",
  subject:"这是一封来自nodemailer发送的邮件信息",
  text:"这是一封来自nodemailer发送的邮件信息"+(new Date()).toLocaleString(),
  html:"<h2>这是一封来自<u>nodemail</u>的测试邮件···</h2>"};transport.sendMail(options,(err,info)=>{
  if(err){
    console.log(err);
  }
  else{
    console.log(info);
  }});
成功後にメッセージを送信します

{ accepted: [ 'lovesnsfi@live.com' ],
  rejected: [],
  envelopeTime: 221,
  messageTime: 830,
  messageSize: 801,
  response: '250 Ok: queued as ',
  envelope: { from: '365055754@qq.com', to: [ 'lovesnsfi@live.com' ] },
  messageId: '<2fbef9f1-1041-fd59-1111-0b987e8d81da@qq.com>' }
現時点では、プログラムがこの中にある限り、 u place 送信リクエストを完了すると、上記の情報が返されます。上記の情報が表示されない場合は、ここでエラーによって返された情報を確認する必要があります。

手順: ここ送信サーバーを構成する場合、サードパーティのサーバーまたは組み込みサーバーを使用できます

思考: 送信コンテンツがテンプレートに置き換えられる場合

const fs=require('fs');const path=require('path');class MailTemplateModel{
  constructor(userName,u_id,registerTime,mail){
    this.userName=userName;
    this.u_id=u_id;
    this.registerTime=registerTime;
    this.mail=mail;
  }
  toString(){
    var str=`尊敬的${this.userName}你好!
    欢迎注册成为我们的会员,你的账号为${this.u_id},你的注册时间为:${this.registerTime}。
    请注意保管好您的账号与密码,如有问题欢迎发送邮件至${this.mail}!
    谢谢!祝您生活愉快!`;
    return str;
  }}module.exports=MailTemplateModel;
上記のコードは、送信される電子メールの内容をオブジェクトにカプセル化し、テンプレート構文を使用して文字列を結合します

思考: 上記の電子メールの内容を外部の別の txt ファイルに書きました。次に、String オブジェクトを置き換えることによって実装されます。この関数を実装するにはどうすればよいですか?

3. child_process

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

4.node-readbility

Web サイトのコンテンツを単純なコンテンツに変換できるプラグイン。

5. connect

実は、express もこのプラグインを使用しており、connect を使用して Web プログラムを作成することもできます。

6.express-session

セッションを使用するプラグインで、Tomcat 30 とは異なり、デフォルトは永久です。分なので自分で設定する必要があります。

7. 基本認証プラグイン

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

8. bcryptjs プラグイン (bcrypt のインストール プロセス中に常にエラーが報告されます)

は、ソルトを使用したハッシュ処理を実行するために使用されます。

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

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

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

puppeteer: chromiun ブラウザを使用すると、非同期リクエストが非常に効率的で、多くのブラウザ操作 API を開くことができ、非常に便利です。

nightmare: API がとても使いやすく、electron ではブラウザを使用しますが、使ったことはありませんが、puppeteer ほど柔軟ではないように感じます。

jsdom: 同期のせいで使うのをやめてしまいました。セレンと同じ。

10、moment.js

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

ノード関連の知識の詳細については、nodejs チュートリアル を参照してください。 !

以上がNodejs プラグインとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。