iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >nodejs插件及用法整理
  • 277
分享到

nodejs插件及用法整理

2024-04-02 19:04:59 277人浏览 八月长安
摘要

 本教程操作环境:windows7系统、nodejs 12.19.0版,DELL G3电脑。 nodejs插件 1、node-xlsx对Excel的读与写 excel的导入导出是很多

 本教程操作环境: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插件有哪些内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: nodejs插件及用法整理

本文链接: https://www.lsjlt.com/news/158182.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • nodejs插件及用法整理
     本教程操作环境:windows7系统、nodejs 12.19.0版,DELL G3电脑。 nodejs插件 1、node-xlsx对Excel的读与写 excel的导入导出是很多...
    99+
    2024-04-02
  • vue中插槽整理及用法分析
    本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。 vue的插槽(slot)主要分三种: 默认插槽,具名插槽,作用域插槽 vue中的插槽,指的是子组件中提...
    99+
    2024-04-02
  • Elasticsearch插件及nodejs的安装配置
    目录Elasticsearch插件介绍核心插件第三方插件插件安装第一种:命令行第二种:url安装第三种:离线安装安装nodejs一 nodejs介绍二 查看原来的镜像地址三 npm切...
    99+
    2024-04-02
  • Nodejs和Session的原理及用法
    这篇文章主要介绍“Nodejs和Session的原理及用法”,在日常操作中,相信很多人在Nodejs和Session的原理及用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • Maven 常用插件的详细整理
    Maven 常用插件的详细整理源码分析<artifactId>maven-pmd-plugin</artifactId> ...
    99+
    2023-05-31
    maven 常用插件
  • PHPcms整合插件推荐及安装指南
    文章题目:PHPcms整合插件推荐及安装指南 随着互联网的发展,网站建设变得越来越普遍,为了提高网站的功能和用户体验,很多网站会选择使用CMS(内容管理系统)来搭建网站。而PHPcms...
    99+
    2024-03-14
    插件 php cms 用户注册
  • numpy.insert用法及内插插0的方法
    目录1,numpy.insert的用法2,利用numpy.insert插值(插入0)Python numpy和scipy中没有直接插0的函数和方法,这里使用numpy.in...
    99+
    2023-03-14
    numpy.insert numpy内插插0
  • IDEA插件之Mybatis log插件安装及使用
    一 前言分析 我们在idea控制台看见的sql日志通常是这样的,实际开发调试中我们想把完的sql复制出来,到数据库中执行分析数据情况。但是如果我们的sql有动态传参控制台输出的sq入参会用“?”代替入参,不能直接使用。 SqlSession...
    99+
    2023-08-16
    mybatis intellij-idea java
  • sublime 3及常用插件
    1、了解Zen Coding:https://www.baidu.com/linkurl=c9YyfvWOfn0EtUrhKlZQ26ANUOD_CSqjgqqsb3lq6LQ05oy2MQs4hWEYLVTlFgHhZKLmtMPTq1x...
    99+
    2023-01-31
    插件 常用 sublime
  • conda常用命令整理及用法详解
    目录Conda1 创建、删除和复制虚拟环境2 激活虚拟环境3 查看当前虚拟环境列表4 给虚拟环境装包5 配置Anaconda的镜像网址6 给jupyter notebook添加虚拟环...
    99+
    2023-01-31
    conda常用命令 conda 命令
  • 手写mybatis完整sql插件问题及实现思路
    问题产生 我们在使用mybatis的过程中,如果开启了mysql的日志功能的话,会在控制台打印一些sql的信息,但是日志中的sql语句,是没有拼接参数的,也就是说,是不可以直接放到数...
    99+
    2024-04-02
  • eclisegithub插件用法
    Eclipse是一款非常流行的开发工具,而GitHub则是目前最受欢迎的代码托管平台之一。为了更好地在Eclipse中管理GitHub操作,GitHub推出了一款名为eclipsegithub的插件。本文将介绍这款插件的使用方法,希望能对广...
    99+
    2023-10-22
  • lombok插件无法使用的原因及解决方法
    这篇文章主要介绍“lombok插件无法使用的原因及解决方法”,在日常操作中,相信很多人在lombok插件无法使用的原因及解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”lombok插件无法使用的原因及解...
    99+
    2023-06-20
  • Vue 中v-model的完整用法及原理
    目录一、 v-model的基本使用二、 v-model的原理三、 v-model结合radio类型使用四、 v-model结合复选框类型使用五、 v-model结合select六、 ...
    99+
    2022-11-13
    Vue v-model用法 Vue v-model
  • SpringBoot自定义maven-plugin插件整合asm代码插桩的方法
    这篇“SpringBoot自定义maven-plugin插件整合asm代码插桩的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2023-06-29
  • vue中插件和组件的区别点及用法总结
    本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。 一、组件是什么 回顾以前对组件的定义: 组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件...
    99+
    2024-04-02
  • FoxyProxy火狐代理插件及BurpSuite代理链设置
    FoxyProxy是一款功能强大的火狐代理插件,可以帮助用户在浏览器中轻松地切换和管理不同的代理服务器。设置FoxyProxy代理链...
    99+
    2023-09-12
    BurpSuite
  • 同步cookie插件原理及实现示例
    目录为什么需要同步 cookie 的需求?撸起袖子开始干为什么需要同步 cookie 的需求? 因为我们公司统一登录、统一认证体系实现方式是通过在公司域名下的 cookie 注入 a...
    99+
    2022-11-13
    同步cookie插件 cookie 同步
  • lombok插件无法使用的原因及解决方案
    lombok插件无法使用的原因及解决 近日使用了一个lombok的插件,中间遇到无法插件无法使用的情况,于是将自已遇到的问题以及解决办法写下来: 在项目中如果使用注解 ,比如 @Se...
    99+
    2024-04-02
  • jquery分页插件用法
    使用jQuery分页插件可以方便地实现数据的分页展示。以下是一个简单的例子:1. 引入jQuery和分页插件的相关文件。```htm...
    99+
    2023-08-24
    jquery
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作