Apakah pemalam nodejs?

青灯夜游
Lepaskan: 2021-11-23 17:31:24
asal
2196 orang telah melayarinya

Pemalam Nodejs termasuk: "node-xlsx", nodemailer, "nod-readability", sambung, "express-session", "basic-auth", bcryptjs, puppeteer, nightmare, dsb.

Apakah pemalam nodejs?

Persekitaran pengendalian tutorial ini: sistem Windows 7, nodejs versi 12.19.0, komputer DELL G3.

pemalam nodejs

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
Salin selepas log masuk

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);
Salin selepas log masuk

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:&#39;学生信息&#39;,data:excelArr}]);
        fs.writeFileSync(path.join(__dirname,"./files/01.xlsx"),buff);
        console.log("ok");
      } catch (error) {
        console.log(err);
      }
    }
  });
  conn.end();}writeExcel();
Salin selepas log masuk

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
Salin selepas log masuk

Import modul dan lengkapkan kod

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);
  }});
Salin selepas log masuk

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>' }
Salin selepas log masuk

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;
Salin selepas log masuk
dengan kod di atas adalah untuk merangkum kandungan e-mel yang akan dihantar ke dalam objek, dan kemudian menggunakan sintaks templat untuk menyambung rentetan

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 dinamik

puppeteer: 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan