#このチュートリアルの動作環境: Windows7 システム、nodejs バージョン 12.19.0、DELL G3 コンピューター。 nodejs プラグインNodejs プラグインには、「node-xlsx」、nodemailer、「node-readbility」、connect、「express-session」、「basic-auth」、bcryptjs、puppeteer、nightmare などが含まれます。
1. Node-xlsx は Excel の読み取りと書き込みを行います
Excel のインポートとエクスポートは次のとおりです。 NodeJS で発生する問題も例外ではありません。現在、NodeJS を使用して Excel ファイルの読み取りと書き込みを行っています。NodeJS では、ファイルの読み取りと書き込みにサードパーティを使用しています。ツール node-xlsx モジュールは、2003 Excel (.xls) 形式と 2007 Excel 形式 (.xlsx) の両方をサポートしています。次に、このモジュールの具体的な操作を見てみましょう読み取り操作Excel
まず、このモジュールをインストールする必要がありますcnpm install node-xlsx --save
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 の書き込み操作の場合
ここで、データベース内のテーブルから情報を読み取り、それをローカル コンピューターに保存する方法を説明します。コードは次のとおりです。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:'学生信息',data:excelArr}]); fs.writeFileSync(path.join(__dirname,"./files/01.xlsx"),buff); console.log("ok"); } catch (error) { console.log(err); } } }); conn.end();}writeExcel();
Thinking を生成する必要があります。Express フレームワークで生成された場合、ユーザーがダウンロードして保存できる Excel ファイルは次のとおりです。地元で?
2. Nodemailer は電子メールを送信します
nodejs には、ユーザーに電子メールを送信するための多くの使用シナリオがあります。 , 登録情報がユーザーの登録済みメールボックスに送信されます。この時点で、この機能を完了したい場合は、nodemailer のサードパーティ モジュールを使用する必要があります。具体的な手順は次のとおりです: 対応するモジュールをインストールします$ cnpm install nodemailer --asve $ yarn add nodemailer
const nodemailer=require('nodemailer');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>' }
手順: ここ送信サーバーを構成する場合、サードパーティのサーバーまたは組み込みサーバーを使用できます
思考: 送信コンテンツがテンプレートに置き換えられる場合
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 サイトの他の関連記事を参照してください。