中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs有哪些插件

發布時間:2021-11-23 17:35:44 來源:億速云 閱讀:178 作者:iii 欄目:web開發

本篇內容介紹了“nodejs有哪些插件”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

第二步,導入該模塊,讀取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:'學生信息',data:excelArr}]);
        fs.writeFileSync(path.join(__dirname,"./files/01.xlsx"),buff);
        console.log("ok");
      } catch (error) {
        console.log(err);
      }
    }
  });
  conn.end();}writeExcel();

在這里,我們發現,寫入excel稍微麻煩一點,因為在這里,我們需要將數據庫中得到的結果進行重新的組合,再生成Excel

思考:如果在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:"<h3>這是一封來自<u>nodemail</u>的測試郵件···</h3>"};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個地方完成我們的發送請求,就會返回上面的信息,如果沒有看到上面的信息,我們就需要在這個地方去查看一下error返回的信息

說明:在此得配置發送服務器的時候,我們可以使用第三方的服務器,也可以使用內置的服務器

思考:如果將發送的內容用模板去完成替換

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對象的replace來進行實現,這個功能怎么實現?

3、child_process

可以創建子進程,執行shell腳本。

4、node-readbility

一個可以將網站內容化為簡單內容的插件。

5、connect

其實express也使用這個插件,使用connect也可以寫web程序。

6、express-session

這是一個使用會話的插件,默認是永遠,和tomcat30分鐘不同,所以需要自己設置超時時間。

7、basic-auth插件

用于最簡單的認證方式,一般用在api請求上。

8、bcryptjs插件(bcrypt安裝過程中總報錯)

用來使用加鹽的方式進行hash處理。

9、爬蟲類集錦:

(1)靜態頁面和api數據的爬取:request+cheerio/jsdom,request是一個請求庫,可以請求post、get信息,獲取html數據后,使用第三方的解析庫解析,cheerio就可以,對于js動態渲染頁面可以考慮使用jsdom,但是很可惜,這個是同步的,而且畢竟不是瀏覽器。

(2)動態渲染的頁面的爬取

puppeteer:使用chromiun瀏覽器,異步請求,效率很高,而且開放了很多操作瀏覽器的api,很方便。

nightmare:api使用非常方便的,使用electron中的瀏覽器,雖然沒有使用過,但是感覺這個沒有puppeteer靈活。

jsdom:同步已經讓我放棄了它的使用。和selenium一樣。

10、moment.js

這是一個輕量級格式解析庫,如果自己寫格式解析函數,需要幾個十幾行的函數代碼,用這個很方便。

“nodejs有哪些插件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德清县| 西藏| 赞皇县| 依兰县| 永登县| 彰化市| 海门市| 天峻县| 东平县| 安康市| 遵义市| 宁乡县| 海门市| 桃园县| 化州市| 西城区| 榕江县| 区。| 揭东县| 宝鸡市| 通许县| 鹿泉市| 三河市| 武冈市| 金川县| 汉沽区| 泰兴市| 新龙县| 扎赉特旗| 汝州市| 合阳县| 鄄城县| 盐源县| 新巴尔虎右旗| 区。| 肃宁县| 林甸县| 武安市| 磐石市| 东乌| 云浮市|