成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

nodejs插件有哪些

nodejs插件有:“node-xlsx”、nodemailer、“node-readbility”、connect、“express-session”、“basic-auth”、bcryptjs、puppeteer、nightmare等。

nodejs插件有哪些

本教程操作環(huán)境:windows7系統(tǒng)、nodejs 12.19.0版,DELL G3電腦。

nodejs插件

1、node-xlsx對(duì)Excel的讀與寫

excel的導(dǎo)入導(dǎo)出是很多系統(tǒng)當(dāng)中都會(huì)出現(xiàn)的問題,在NodeJS當(dāng)中,也不例外,現(xiàn)在,我們就通過NodeJS來實(shí)現(xiàn)Excel文件的讀寫

NodeJS里面,實(shí)現(xiàn)文件的讀與寫,我們使用的是第三方的工具node-xlsx這個(gè)模塊,這個(gè)模塊同時(shí)支持2003的Excel(.xls)格式與支持2007的Excel的格式(.xlsx)

現(xiàn)在,我們就看一下這個(gè)模塊的具體操作

對(duì)Excel的讀取操作

首先,我們需要安裝這個(gè)模塊

cnpm install node-xlsx --save

第二步,導(dǎo)入該模塊,讀取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);

上面的代碼就已經(jīng)完成了對(duì)Excel文件的讀取操作,這個(gè)時(shí)候我們讀出來的是一個(gè)對(duì)象,可以在控制臺(tái)看到其中的信息

對(duì)Excel的寫入操作

現(xiàn)在,我們就演示將數(shù)據(jù)庫(kù)的一個(gè)張表的信息讀取出來,然后保存到本地電腦當(dāng)中,代碼如下

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:'學(xué)生信息',data:excelArr}]);         fs.writeFileSync(path.join(__dirname,"./files/01.xlsx"),buff);         console.log("ok");       } catch (error) {         console.log(err);       }     }   });   conn.end();}writeExcel();

在這里,我們發(fā)現(xiàn),寫入excel稍微麻煩一點(diǎn),因?yàn)樵谶@里,我們需要將數(shù)據(jù)庫(kù)中得到的結(jié)果進(jìn)行重新的組合,再生成Excel

思考:如果在Express框架當(dāng)中,生成好的Excel文件如下讓用戶去下載,保存到本地?

2、nodemailer對(duì)郵件的發(fā)送

nodejs對(duì)發(fā)送郵件給用戶,使用的場(chǎng)景也非常多,例如,我們經(jīng)常會(huì)看到一個(gè)用戶注冊(cè)以后,就會(huì)發(fā)送一封注冊(cè)信息到用戶所注冊(cè)的郵箱當(dāng)中去, 這時(shí)候,如果我們要完成這一個(gè)功能,就需要使用一個(gè)nodemailer的第三方模塊,具體使用步驟如下:

安裝相應(yīng)模塊

$ cnpm install nodemailer --asve $ yarn add nodemailer

導(dǎo)入模塊,完成代碼

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發(fā)送的郵件信息",   text:"這是一封來自nodemailer發(fā)送的郵件信息"+(new Date()).toLocaleString(),   html:"<h2>這是一封來自<u>nodemail</u>的測(cè)試郵件···</h2>"};transport.sendMail(options,(err,info)=>{   if(err){     console.log(err);   }   else{     console.log(info);   }});

發(fā)送成功以后的信息

{ 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>' }

這個(gè)時(shí)候,只要程序能夠在這u個(gè)地方完成我們的發(fā)送請(qǐng)求,就會(huì)返回上面的信息,如果沒有看到上面的信息,我們就需要在這個(gè)地方去查看一下error返回的信息

說明:在此得配置發(fā)送服務(wù)器的時(shí)候,我們可以使用第三方的服務(wù)器,也可以使用內(nèi)置的服務(wù)器

思考:如果將發(fā)送的內(nèi)容用模板去完成替換

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}你好!     歡迎注冊(cè)成為我們的會(huì)員,你的賬號(hào)為${this.u_id},你的注冊(cè)時(shí)間為:${this.registerTime}。     請(qǐng)注意保管好您的賬號(hào)與密碼,如有問題歡迎發(fā)送郵件至${this.mail}!     謝謝!祝您生活愉快!`;     return str;   }}module.exports=MailTemplateModel;

上面的代碼就是將要發(fā)送的郵件內(nèi)容封裝成了一個(gè)對(duì)象,然后使用模板語法進(jìn)行了拼接字符串

思考:上在的郵件發(fā)送內(nèi)容,我們寫在外部單獨(dú)的txt文件當(dāng)中,然后通過String對(duì)象的replace來進(jìn)行實(shí)現(xiàn),這個(gè)功能怎么實(shí)現(xiàn)?

3、child_process

可以創(chuàng)建子進(jìn)程,執(zhí)行shell腳本。

4、node-readbility

一個(gè)可以將網(wǎng)站內(nèi)容化為簡(jiǎn)單內(nèi)容的插件。

5、connect

其實(shí)express也使用這個(gè)插件,使用connect也可以寫web程序。

6、express-session

這是一個(gè)使用會(huì)話的插件,默認(rèn)是永遠(yuǎn),和tomcat30分鐘不同,所以需要自己設(shè)置超時(shí)時(shí)間。

7、basic-auth插件

用于最簡(jiǎn)單的認(rèn)證方式,一般用在api請(qǐng)求上。

8、bcryptjs插件(bcrypt安裝過程中總報(bào)錯(cuò))

用來使用加鹽的方式進(jìn)行hash處理。

9、爬蟲類集錦:

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

(2)動(dòng)態(tài)渲染的頁面的爬取

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

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

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

10、moment.js

這是一個(gè)輕量級(jí)格式解析庫(kù),如果自己寫格式解析函數(shù),需要幾個(gè)十幾行的函數(shù)代碼,用這個(gè)很方便。

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
人人妻人人澡人人爽欧美二区| 久久精品亚洲乱码伦伦中文| 国产一在线精品一区在线观看| 国产乱子伦精品无码码专区| 国产一区二区三区影院| 黑人巨大精品欧美一区二区免费 | 香港三日本三级少妇三级视频| 亚洲AV日韩AV永久无码久久| 亚洲熟妇AV不卡一区二区三区| 亚洲尤码不卡AV麻豆| 99精品久久久久精品双飞| 成年免费视频黄网站ZXGK| 国产97色在线 | 欧洲| 国内精品久久久久久久久电影网 | 国产精品99久久久久久WWW| 和儿媳妇在一起最幸福的句子| 久久久久久亚洲AV成人无码国产| 年轻老师的滋味3在观整有限中字 年轻夫妻把小孩哄睡后开监控 | 亚洲AV无码专区亚洲猫咪| 野花社区WWW高清图片| AV人摸人人人澡人人超碰下载| 大炕上和亲亲公个取所需| 国产在线精品二区| 六月丁香婷婷色狠狠久久| 人人添人人妻人人爽频| 无码G0G0大胆啪啪艺术| 亚洲熟妇色XXXXXX爽| JAPANESE酒醉侵犯| 国产精品无码专区在线播放| 久久熟妇人妻午夜寂寞影院| 人物动物交互第LL0集| 性做久久久久久久久| 中国老B亂伦AV| 俄罗斯PONONDLX| 精品乱码一卡2卡三卡4卡二卡| 女人为啥摸几下就让进了| 天天躁日日躁AAAAXXXX| 夜里18款禁用B站入口探APP| 成人区精品一区二区不卡| 饥渴的少妇2中文字幕| 欧美成人免费观看在线看| 无码人妻一区二区三区AV| 又粗又黄又爽视频免费看| 粗大黑人巨精大战欧美成人 | 国产AV无码国产AV毛片| 久久久久久久久久国产精品免费| 日本厨房ⅩⅩⅩⅩⅩ乱| 亚洲国产精品无码中文字满| WWW国产亚洲精品久久麻豆| 国内毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 热の无码热の有码热の综合| 亚洲AV无码一区二区三区天堂| 91人妻人人澡人人爽人人| 国产精品一区二区水蜜桃色欲 | 天天躁夜夜躁很很躁| 在线观看无码AV网站永久免费| 国产V片在线播放免费无码| 久久伊人精品一区二区三区| 挺进大幂幂的滋润花苞御女天下| 又大又粗又爽又黄的少妇毛片| 国产成本人片免费AV| 免费观看A级毛片| 午夜无码片在线观看影院网址| 985大学排名一览表| 含羞草自慰抽搐喷白浆AⅤ| 人人爽天天碰狠狠添| 野花ぶるだいあり~しすWWW| 国产SUV精二区69| 女人丝不挂的正面裸体| 亚洲丰满少妇多毛大隂户| 成人免费视频一区二区| 久久天堂AV女色优精品| 偷朋友人妻系列H文| AV天堂久久天堂AV色综合| 精品人妻少妇一区二区三区不卡| 色噜噜人体337P人体| 中文字幕无码日韩AV| 黑人巨大高潮喷水AV| 少妇被躁C至高潮HD| 97精品伊人久久大香线蕉APP| 护士猛少妇色ⅩⅩXXX猛叫| 少妇被又大又粗又爽毛片| 97久久人人超碰国产精品| 精品无码国产自产野外拍在线| 天码AV无码一区二区三区四区| 99精品热6080YY久久| 久久精品熟女亚州AV麻豆| 香蕉久久久久久久AV网站| 差差差无掩盖视频30分钟| 毛豆日产精品卡2卡3卡4卡免费 | 韩国三级在线观看| 天天摸夜夜添夜夜无码| АV天堂手机版在线观看| 看全色黄大色大片免费无码| 亚洲丰满熟妇乱XXXXX网站| 国产精品免费无遮挡无码永久视频| 人妻丰满熟妇AV无码区动漫| 中文字幕无线码中文字幕免费 | 亚洲日韩成人AV无码网站| 国产精品原创巨作AV女教师 | 亚洲AV午夜成人片动漫番| 国产成人精品无码免费看| 日本19禁啪啪无遮挡免费| 337P粉嫩日本欧洲亚洲大胆艺| 久久精品久久精品中文字幕| 亚洲AV伊人久久综合密臀性色| 国产精品国产三级国产A| 三级无码在钱AV无码在钱| 八戒电影电影网电影网| 女生裙子里面到底穿了啥| 中国XMXM18小孩的推荐机制| 久久精品亚洲乱码伦伦中文| 亚洲精品无码伊人久久| 国产在线乱码一区二区三区| 无码人妻精品一区二区蜜桃视频| 东京热无码人妻系列综合网站| 日本毛多水多做受视频| JAPAN丰满人妻VIDEOS| 欧美精品xxxxx| 99热都是精品久久久久久| 男JI大巴进入女人的视频| 中文手机电影在线观看| 久碰人澡人澡人澡人澡人视频| 亚洲一区二区三区国产精华液| 精品无人区卡一卡二卡三乱码| 亚洲精品一品区二品区三品区| 娇妻玩4P被3个男子伺候电影| 亚洲AV成人在线播放| 国产又色又爽又刺激视频| 亚洲AV成人片色在线观看蜜臀| 国产麻花豆剧传媒精品MV| 无线乱码A区B区C区D| 国产狂喷水潮免费网站WWW| 小婷又软又嫩又紧水又多| 国产又色又爽又刺激在线观看 | 精品国产制服丝袜高跟| 亚洲国产精品久久精品| 久久97人人超人人超碰超国产 | 久久人人爽人人爽人人片DVD| 一本大道久久香蕉成人网| 麻豆国产AV超爽剧情系列| 中文国产成人精品久久APP| 嫩小槡BBBB槡BBBB槡| WWW.一区二区三区在线 || 日产亚洲一区二区三区| 丰满人妻AV无码一区二区三区| 婷婷色中文字幕综合在线| 国产嫖妓风韵犹存对白| 亚洲爆乳少妇无码激情| 精品人在线二线三线区别 | 女子遭遇疯狂侵犯| Y111111少妇影院无码| 日产精品久久久一区二区 | 天堂中文在线最新版WWW| 国产口爆吞精在线视频| 亚洲麻豆AV成本人无码网站| 可以差差差的视频无掩盖| AV人摸人人人澡人人超碰小说| 日韩亚洲AV人人夜夜澡人人爽| 国产精东天美AV影业传媒| 亚洲成A∧人片在线播放黑人| 久久精品中文字幕无码绿巨人| 18禁真人床震无遮挡免费| 日韩激情无码免费毛片| 国产精品美女久久久久久| 亚洲国产精品一区二区成人片不卡| 久久天天躁狠狠躁夜夜| AV成人羞羞漫画永久入口| 色欲香天天天综合网站小说| 国产无遮挡又黄又爽奶头| 野花社区WWW在线视频官网| 欧美日韩在大午夜爽爽影院| 国产99久久久久久免费看| 亚洲爆乳精品无码一区二区| 美女内射毛片在线看| 城中村勾搭老熟女啪啪| 亚洲AV毛茸茸av成熟女人| 麻豆影视视频在线观看完整版| 成年免费视频黄网站在线观看| 性无码一区二区三区在线观看| 久久久久人妻精品一区| 拔萝卜在线视频免费观看| 亚洲A∨精品无码一区二区| 美女扒开裤衩让男人桶爽| 成人无码区免费A∨| 亚洲成AV人片在线观看WWW| 女孩子手脚绑起来嘴用胶带封上| 丰满熟妇人妻中文字幕| 亚洲国产精品无码久久久| 欧美大屁股妞性潮喷ⅩXX| 国产精品久久久久久久久岛| 一本一道人人妻人人妻ΑV| 日韩人妻无码AⅤ中文字幕| 荒野大镖客暴躁老太太| AV无码中文字幕不卡一区二区三| 无码人妻精品一区二区三区99仓| 老太BBWWBBWW高潮| 国产成人无码A在线观看不卡 | 久久久久亚洲精品无码系列 | BBOX撕裂BASS后门在线|