本教程操作环境: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:"<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>' }

这个时候,只要程序能够在这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插件及用法整理的文章就介绍到这了,更多相关nodejs插件有哪些内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

nodejs插件及用法整理的更多相关文章

  1. nodejs npm package.json中文文档

    这篇文章主要介绍了nodejs npm package.json中文文档,本文档中描述的很多行为都受npm-config(7)的影响,需要的朋友可以参考下

  2. 浅析Nodejs npm常用命令

    这篇文章主要介绍了浅析Nodejs npm常用命令的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

  3. jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】

    这篇文章主要介绍了jQuery插件HighCharts绘制的基本折线图效果,结合实例形式分析了jQuery基于HighCharts插件绘制图形的具体实现步骤与相关操作技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下

  4. jQuery插件实现的日历功能示例【附源码下载】

    这篇文章主要介绍了jQuery插件实现的日历功能,结合完整实例形式分析了jQuery datepicker插件实现日历功能的相关操作技巧,需要的朋友可以参考下

  5. nodejs 使用nodejs-websocket模块实现点对点实时通讯

    这篇文章主要介绍了nodejs 使用nodejs-websocket模块实现点对点实时通讯的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  6. nodeJs链接Mysql做增删改查的简单操作

    本篇文章主要介绍了nodeJs链接Mysql做增删改查的简单操作,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. Nodejs中使用captchapng模块生成图片验证码

    本篇文章主要介绍了Nodejs中使用captchapng模块实现图片验证码,非常具有实用价值,需要的朋友可以参考下

  8. nodejs 图片预览和上传的示例代码

    本篇文章主要介绍了nodejs 图片预览和上传的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  9. 使用JQuery自动完成插件Auto Complete详解

    这篇文章主要介绍了使用JQuery自动完成插件Auto Complete详解,使用JQuery自动完成插件,更新现有图书列表页面上的搜索,当用户键入的时候立即显示结果。,需要的朋友可以参考下

  10. nodejs中函数的调用实例详解

    本文通过实例代码给大家介绍了nodejs函数的调用,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. Error: Cannot find module ‘node:util‘问题解决

    控制台 安装 Vue-Cli 最后一步出现 Error: Cannot find module 'node:util' 问题解决方案1.问题C:\Windows\System32>cnpm install -g @vue/cli@4.0.3internal/modules/cjs/loader.js:638 throw err; &nbs

  2. yarn的安装和使用(全网最详细)

    一、yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。二、yarn的特点:速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。三、y

  3. 前端环境 本机可切换node多版本 问题源头是node使用的高版本

    前言投降投降 重头再来 重装环境 也就分分钟的事 偏要折腾 这下好了1天了 还没折腾出来问题的源头是node 使用的高版本 方案那就用 本机可切换多版本最终问题是因为nodejs的版本太高,导致的node-sass不兼容问题,我的node是v16.14.0的版本,项目中用了"node-sass": "^4.7.2"版本,无法匹配当前的node版本根据文章的提

  4. nodejs模块学习之connect解析

    这篇文章主要介绍了nodejs模块学习之connect解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. nodejs npm package.json中文文档

    这篇文章主要介绍了nodejs npm package.json中文文档,本文档中描述的很多行为都受npm-config(7)的影响,需要的朋友可以参考下

  6. 详解koa2学习中使用 async 、await、promise解决异步的问题

    这篇文章主要介绍了详解koa2学习中使用 async 、await、promise解决异步的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. Node.js编写爬虫的基本思路及抓取百度图片的实例分享

    这篇文章主要介绍了Node.js编写爬虫的基本思路及抓取百度图片的实例分享,其中作者提到了需要特别注意GBK转码的转码问题,需要的朋友可以参考下

  8. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. node.js三个步骤实现一个服务器及Express包使用

    这篇文章主要介绍了node.js三个步骤实现一个服务器及Express包使用,文章通过新建一个文件展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下

  10. node下使用UglifyJS压缩合并JS文件的方法

    下面小编就为大家分享一篇node下使用UglifyJS压缩合并JS文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

返回
顶部