实用功能
01、lodash
地址:https://github.com/lodash/lodash
Lodash 是一个 JavaScript 库,它为常见的编程任务提供实用功能,它使用函数式编程范式。
例子:
const _ = require('loadsh')
console.log( _.chunk(['a', 'b', 'c', 'd'], 3))
// => [['a', 'b', 'c'], ['d']]
console.log( _.difference([2, 1], [2, 3]))
// => [1];
02、underscore
地址:https://www.npmjs.com/package/underscore
Underscore.js 是一个用于 JavaScript 的实用工具带库,它为常见的功能嫌疑人(each, map, reduce, filter…)提供支持,而无需扩展任何核心 JavaScript 对象。
例子:
const _ = require('underscore')
// Return a copy of the object, filtered to only have values for the allowed keys (or array of valid keys).
_.pick({name: 'moe', age: 50, userid: 'moe1'}, 'name', 'age');;
03、Async
网址:https://www.npmjs.com/package/async
Async 是一个实用模块,它为使用异步 JavaScript 提供了直接、强大的功能。
HTTP 请求
HTTP 请求的库。
04、axios
网址:https://github.com/axios/axios
用于浏览器和 node.js 的基于 Promise 的 HTTP 客户端。
例子:
const axios = require('axios').default;
let fakeAPI = 'https://jsonplaceholder.typicode.com/todos/1'
axios.get(fakeAPI)
.then(function (response) {
// handle success
console.log(response);
console.log(response.data);
})
.catch(function (error) {
// handle error
console.log(error);
})
.then(function () {
// always executed
});;
05、node fetch
网址:https://github.com/node-fetch/node-fetch
将 Fetch API 引入 Node.js 的轻量级模块。
06、got
网址:https://github.com/sindresorhus/got
适用于 Node.js 的人性化且功能强大的 HTTP 请求库。
例子:
import got from 'got';
const {headers} = await got(
'https://httpbin.org/anything',
{
headers: {
foo: 'bar'
}
}
).json();
07、superagent
网址:https://github.com/visionmedia/superagent
小型渐进式客户端 HTTP 请求库,与具有相同 API 的 Node.js 模块,支持许多高级 HTTP 客户端功能。
08、needle
地址:https://github.com/tomas/needle
Needle 是一个简洁美观的 Node HTTP 请求库,只有两个真正的依赖项。
服务器端
您可以在 Web 服务器上使用这些库。
09、jsonwebtoken
网址:https://www.npmjs.com/package/jsonwebtoken
JSON Web 令牌的实现。
10、body-parser
网址:https://www.npmjs.com/package/body-parser
Node.js 正文解析中间件。
在处理程序之前在中间件中解析传入的请求正文,可在 req.body 属性下使用。
11、cors
网址:https://www.npmjs.com/package/cors
CORS 是一个 node.js 包,用于提供 Connect/Express 中间件,可用于通过各种选项启用 CORS。
12、GraphQL.js
网址:https://www.npmjs.com/package/graphql
GraphQL 是由 Facebook 创建的 API 查询语言工具。
13、socket.io
网址:https://www.npmjs.com/package/socket.io
Socket.IO 支持基于事件的实时双向通信。它包括:
一个 Node.js 服务器(这个存储库)
浏览器的 Javascript 客户端库(或 Node.js 客户端)
14、ws
网址:https://www.npmjs.com/package/ws
ws 是一个简单易用、速度极快且经过全面测试的 WebSocket 客户端和服务器实现。
15、Passport
网址:https://www.npmjs.com/package/passport
Passport 是与 Express 兼容的 Node.js 身份验证中间件。
Passport 的唯一目的是验证请求,它通过一组称为策略的可扩展插件来完成。
16、bcrypt
网址:https://www.npmjs.com/package/bcrypt
帮助您散列密码的库。
bcrypt.genSalt(saltRounds, function(err, salt) {
bcrypt.hash(myPlaintextPassword, salt, function(err, hash) {
// Store hash in your password DB.
});
});
String
17、nanoid
用于 JavaScript 的小型、安全、URL 友好、唯一的字符串 ID 生成器。
Nano ID 与 UUID v4(基于随机)相当。它在 ID 中具有相似数量的随机位(Nano ID 中为 126,UUID 中为 122),因此它具有相似的碰撞概率:
https://github.com/ai/nanoid/
import { nanoid } from 'nanoid/async'
async function createUser () {
user.id = await nanoid()
}
18、uuid
网址:https://github.com/uuidjs/uuid#readme
用于创建 RFC4122 UUID
Database
执行与数据库相关的操作。
19、Mongoose
网址:https://www.npmjs.com/package/mongoose
Mongoose 是一个 MongoDB 对象建模工具,旨在在异步环境中工作。Mongoose 支持 Promise 和回调。
20、sequelize
网址:https://www.npmjs.com/package/sequelize
Sequelize 是一个易于使用且基于 Promise 的 Node.js ORM 工具,适用于 Postgres、MySQL、MariaDB、SQLite、DB2、Microsoft SQL Server 和 Snowflake。它具有可靠的事务支持、关系、急切和延迟加载、读取复制等。
Logger
21、morgan
网址:https://www.npmjs.com/package/morgan
HTTP 请求记录器,存储 HTTP 请求并让您简要了解应用程序的使用方式以及可能存在的错误。
配置
配置您的项目。
22、DotEnv
网址:https://github.com/motdotla/dotenv#readme
Dotenv 是一个零依赖模块,它将环境变量从 .env 文件加载到 process.env 中。将配置与代码分开存储在环境中是基于十二要素应用程序方法。
23、config
网址:https://github.com/node-config/node-config#readme
Node-config 为您的应用程序部署组织分层配置。
它允许您定义一组默认参数,并将它们扩展为不同的部署环境(开发、质量保证、登台、生产等)。
配置存储在应用程序的配置文件中,并且可以被环境变量、命令行参数或外部源覆盖和扩展。
图像处理
24、sharp
网址:https://github.com/lovell/sharp#readme
这个模块的典型用例是将常见格式的大图像转换为更小的、对 Web 友好的 JPEG、PNG、WebP、GIF 和不同尺寸的 AVIF 图像。
sharp(inputBuffer)
.resize(320, 240)
.toFile('output.webp', (err, info) => { ... });
网页抓取
25、Cheerio
网址:https://github.com/cheeriojs/cheerio
专为服务器设计核心 jQuery 的快速、灵活和精简的实现,它广泛用于网络抓取工作,有时还用于自动化任务。
26、Puppeteer
网址:https://github.com/puppeteer/puppeteer#readme
Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chrome 或 Chromium。Puppeteer 默认运行无头,但可以配置为运行完整(非无头)Chrome 或 Chromium。
数据验证
27、Validator
网址:https://github.com/validatorjs/validator.js
字符串验证器。
例子:
var validator = require('validator');
console.log('isEmail: ',validator.isEmail('foo.bar.com'));
console.log('isIP', validator.isIP('192.168.5.5'));;
28、yup
网址:https://github.com/jquense/yup
Yup 是一个用于运行时值解析和验证的模式构建器。定义模式、转换值以匹配、断言现有值的形状,或两者兼而有之。是的,模式极具表现力,允许对复杂的、相互依赖的验证或值转换进行建模。
日期处理
29、day.js
网址:https://github.com/iamkun/dayjs
Day.js 是一个极简的 JavaScript 库,它解析、验证、操作和显示现代浏览器的日期和时间,并具有很大程度上与 Moment.js 兼容的 API。如果您使用 Moment.js,那么您已经知道如何使用 Day.js。
dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss');
30、moment.js
网址:https://www.npmjs.com/package/moment
用于解析、验证、操作和格式化日期的 JavaScript 日期库。
以下是这些日期库的比较:
31、date-fns
网址:https://www.npmjs.com/package/date-fns
date-fns 为在浏览器和 Node.js 中操作 JavaScript 日期提供了最全面、最简单、最一致的工具集。
32、Luxon
网址:https://www.npmjs.com/package/luxon
Luxon 是一个在 JavaScript 中处理日期和时间的库。
其他库
33、chalk
网址:https://github.com/chalk/chalk#readme
它将帮助您在终端中打印彩色字符串。
34、JSON5
网址:https://www.npmjs.com/package/json5
JSON5 数据交换格式 (JSON5) 是 JSON 的超集,旨在通过扩展其语法以包含来自 ECMAScript 5.1 的一些产品来缓解 JSON 的一些限制。
总结
以上就是我今天跟你分享的34个有关JavaScript的库,希望有你需要的,如果你觉得有用的话,请记得点赞我,关注我,并将它分享给你身边的朋友,也许能够帮助到他。
最后,感谢你的阅读,祝编程愉快!
学习更多技能
请点击下方公众号