推荐一些Node.js超好用的工具库(开发篇)
title: 推荐一些Node.js超好用的工具库(开发篇)
首先明确一下库和框架的区别:一般而言,一个工程中可以使用多个库,但只能使用一个框架,本文只推荐库,不涉及Express, egg.js, Koa 这类框架。
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/
发表回复