Pemalam Nodejs termasuk: "node-xlsx", nodemailer, "nod-readability", sambung, "express-session", "basic-auth", bcryptjs, puppeteer, nightmare, dsb.
Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 12.19.0, komputer DELL G3.
1. Pembacaan dan penulisan node-xlsx Excel
Import dan eksport excel. adalah banyak sistem Masalah yang akan timbul dalam NodeJS tidak terkecuali Kini, kami menggunakan NodeJS untuk merealisasikan pembacaan dan penulisan fail Excel
Dalam NodeJS, untuk merealisasikan pembacaan dan penulisan fail, kami menggunakan yang ketiga-. modul Party Tool node-xlsx, modul ini menyokong kedua-dua format Excel (.xls) 2003 dan format Excel 2007 (.xlsx)
Sekarang, mari kita lihat operasi khusus modul ini
Kendalian membaca Excel
Pertama, kita perlu memasang modul ini
cnpm install node-xlsx --save
Langkah kedua ialah mengimport modul dan membaca fail 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);
Kod di atas telah menyelesaikan operasi membaca fail Excel Pada masa ini, apa yang kita baca ialah objek, dan maklumat boleh dilihat dalam konsol
Kendalian tulis. ke Excel
Sekarang, kami akan menunjukkan membaca maklumat jadual dalam pangkalan data dan menyimpannya ke komputer setempat Kodnya adalah seperti berikut
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();
Di sini, kami mendapati bahawa menulis untuk cemerlang adalah sedikit lebih menyusahkan, kerana di sini kita perlu menggabungkan semula hasil yang diperolehi dalam pangkalan data dan menjana Excel
Berfikir: Jika dalam Dalam rangka kerja Express, Excel yang dihasilkan fail adalah seperti berikut untuk dimuat turun dan disimpan oleh pengguna secara tempatan?
2. Nodemailer menghantar e-mel
nodejs mempunyai banyak senario penggunaan untuk menghantar e-mel kepada pengguna Sebagai contoh, kami sering Selepas melihat daftar pengguna , maklumat pendaftaran akan dihantar ke peti mel berdaftar pengguna Pada masa ini, jika kita ingin melengkapkan fungsi ini, kita perlu menggunakan modul nodemailer pihak ketiga adalah seperti berikut:
Pasang modul yang sepadan
$ cnpm install nodemailer --asve $ yarn add nodemailer
Import modul dan lengkapkan kod
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); }});
Hantar maklumat selepas berjaya
{ 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>' }
Pada masa ini, selagi program Jika kami dapat menyelesaikan permintaan penghantaran kami di tempat u ini, maklumat di atas akan dikembalikan Jika kami tidak melihat maklumat di atas, kami perlu menyemak maklumat yang dikembalikan secara ralat di tempat ini
Perihalan : Apabila mengkonfigurasi pelayan penghantaran, kami boleh menggunakan pelayan pihak ketiga atau pelayan terbina dalam
Berfikir: Jika kandungan yang akan dihantar selesai menggunakan templat Menggantikan
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;
Berfikir: Di atas Kami menulis kandungan e-mel dalam fail txt luaran yang berasingan, dan kemudian melaksanakannya melalui penggantian objek String Bagaimana untuk melaksanakan fungsi ini?
3. child_process
boleh mencipta proses anak dan melaksanakan skrip shell.4. kebolehbacaan nod
Pemalam yang boleh menukar kandungan tapak web kepada kandungan mudah.5 sambung
Malah, express juga menggunakan pemalam ini, dan anda juga boleh menulis program web menggunakan connect.6. sesi ekspres
Ini ialah pemalam yang menggunakan sesi lalainya, yang berbeza daripada tomcat 30 minit, jadi anda perlu menetapkan sendiri tempoh tamat masa.7. Pemalam pengesahan asas
digunakan untuk kaedah pengesahan paling mudah, biasanya digunakan untuk permintaan API.8. bcryptjs plug-in (ralat sentiasa dilaporkan semasa proses pemasangan bcrypt)
digunakan untuk melakukan pemprosesan cincang menggunakan garam .9. Koleksi reptilia:
(1) Merangkak halaman statik dan data api: minta cheerio/jsdom, permintaan ialah Permintaan perpustakaan, anda boleh meminta siaran dan mendapatkan maklumat Selepas mendapatkan data html, gunakan perpustakaan penghuraian pihak ketiga untuk menghuraikannya, cheerio boleh digunakan Untuk halaman yang dipaparkan secara dinamik, anda boleh mempertimbangkan untuk menggunakan jsdom, tetapi malangnya, ini adalah segerak. , dan peranti itu tidak menyemak imbas. (2) Merangkak halaman yang dipaparkan secara dinamikpuppeteer: Menggunakan pelayar chromiun, permintaan tak segerak, sangat cekap dan membuka banyak operasi penyemak imbas api, sangat mudah .
mimpi ngeri: API sangat mudah untuk digunakan. Walaupun saya tidak pernah menggunakannya, saya rasa ini tidak sefleksibel seperti dalang.
jsdom: Penyegerakan telah menghalang saya daripada menggunakannya. Sama seperti selenium.
10.js
Ini ialah pustaka penghuraian format yang ringan Jika anda menulis sendiri fungsi penghuraian format, anda memerlukan beberapa dozen baris kod fungsi.
Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs! !
Atas ialah kandungan terperinci Apakah pemalam nodejs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!