推荐一些Node.js超好用的工具库(开发篇)


title: 推荐一些Node.js超好用的工具库(开发篇)

首先明确一下库和框架的区别:一般而言,一个工程中可以使用多个库,但只能使用一个框架,本文只推荐,不涉及Expressegg.js, Koa 这类框架。

公众号预览图.001

fs-extra

fs-extra让Node.js文件操作文件更人性化,fs-extra提供以同步方式 新建复制移动删除修改写入 文件和文件夹的方法。

开源地址:

https://github.com/jprichardson/node-fs-extra

moment

moment是一个专门处理时间日期的库,moment不仅提供基于时区的各种时间展示形式,而且可以对日期进行加减,判断时间点是否在某个时间段内,配合插件系统,moment提供了时间日期的全套解决方案。

开源地址:

https://github.com/moment/moment/

axios

axios是一个http请求库,体积小巧,功能丰富,前后端都可用,自发布以来,好评如潮。

开源地址:

https://github.com/axios/axios

nodemailer

nodemailer是我用过最好用的 node.js 发邮件库,上代码!

'use strict';
const nodemailer = require('nodemailer');
const moment = require('moment');
const path = require('path');

nodemailer.createTestAccount((err, account) => {
    // 填入自己的账号和密码
    let transporter = nodemailer.createTransport({
        host: 'smtp.163.com',
        port: 465,
        secure: true, // 如果是 true 则port填写465, 如果 false 则可以填写其它端口号
        auth: {
            user: "lijianzhaoyou@163.com", // 发件人邮箱
            pass: "" // 发件人密码(用自己的...)
        }
    });
    // 获取当前时间
    let sendTime = moment().format('MMMM Do YYYY, h:mm:ss a');
    // 填写发件人, 收件人
    let mailOptions = {
        // 发件人地址
        from: 'lijianzhaoyou@163.com',
        // 收件人列表, 向163邮箱, gmail邮箱, qq邮箱各发一封
        to: 'lijianzhaoyou@163.com, zhaoolee@gmail.com, 861881383@qq.com',
        // 邮件主题
        subject: '用nodemailer发出的邮件~',
        // 文字内容
        text: '发送附件内容',
        // html内容
        html: '<b>发送时间:' + sendTime + '</b>',
        // 附件内容 是一个列表, 第一个是目录下的pack.json文件, 第二是御坂美琴的头像, 第三是作者在拍的图片的zip包
        attachments: [{
            filename: 'package.json',
            path: path.resolve(__dirname, 'package.json')
        }, {
            filename: 'bilibili.jpg',
            path: path.resolve(__dirname, 'bilibili.jpg')
        }, {
            filename: 'room.zip',
            path: path.resolve(__dirname, 'room.zip')
        }],
    };

    // 发送邮件
    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            return console.log(error);
        }
        console.log("邮件发送成功~");
    });
});

Gmail收到:

163邮箱收到(自己发给自己)

qq邮箱收到

开源地址:
https://github.com/nodemailer/nodemailer

showdown

showdown是将markdown转html的库,前后端均可用,我的博客就是使用showdown将本地markdown文章转换为html, 然后同步到 v2fy.com

实例代码(已踩坑,以下代码可转table语法)

let converter = new showdown.Converter({tables: true, omitExtraWLInCodeBlocks: true});

const html_content = converter.makeHtml(content);

开源地址:

https://github.com/showdownjs/showdown

pm2

pm2可以守护node.js程序,一旦node.js程序崩溃,pm2可以自动重启Node.js程序.

开源地址:

https://github.com/Unitech/pm2

nodemon

nodemon可以检测代码文件变化,并实时重启程序,适合开发阶段使用!

开源地址:

https://github.com/remy/nodemon

http-server

http-server 可以在命令行开启一个http服务,可以零配置启动。

开源地址:

https://github.com/http-party/http-server

braft-editor

braft-editor是一个基于React的富文本编辑器,完成度极高,开箱即用!

开源地址:

https://github.com/margox/braft-editor

echarts

echarts是一个数据可视化库(图表库),支持2D和3D图表,非常炫酷,也非常实用。

开源地址:

https://github.com/apache/incubator-echarts

crypto-js

crypto-js是一个强大的加密库,支持大量加密算法。

开源地址:

https://github.com/brix/crypto-js

cheerio

cheerio可以用Xpath语法解析html,适用于爬虫程序。

开源地址:

https://github.com/cheeriojs/cheerio

sequelize

sequelize 是一个支持Mysql,SQLite,Microsoft SQL Server,MariaDB,Postgres转换为ORM操作的库。

开源地址:

https://github.com/sequelize/sequelize

dotenv

dotenv可以将.env文件内包含的变量,自动注入到 process.env 中。

开源地址:
https://github.com/motdotla/dotenv

socket.io

socket.io用极其简单的语法,在服务端与客户端之间,建立可靠的socket长连接通信。

开源地址:
https://github.com/socketio/socket.io

lodash

lodash是一个js扩展库,提供了大量好用的方法。loadsh与jquery有些类似,jquery将方法绑定到$ , lodash将方法绑定到_

loadash深拷贝示例

var objects = [{ 'a': 1 }, { 'b': 2 }];

var deep = _.cloneDeep(objects);
console.log(deep[0] === objects[0]);
// => false

开源地址:
https://github.com/lodash/lodash

ejsExcel

ejsExcel 是一个Excel模版引擎,可以在格式复杂的excel中填入信息。

开源地址:

https://github.com/sail-sail/ejsExcel

decimal.js

decimal.js是一个科学计算库,可以进行任意精度的十进制运算。

开源地址:

https://github.com/MikeMcl/decimal.js/

本文永久更新地址(欢迎来读留言,写评论):

https://www.v2fy.com/p/2020-11-16-nodejs