34个有用的 JavaScript 库,现在就可以用起来

bf6046bdefe5e611f43339e834940946.jpeg

实用功能

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的库,希望有你需要的,如果你觉得有用的话,请记得点赞我,关注我,并将它分享给你身边的朋友,也许能够帮助到他。

最后,感谢你的阅读,祝编程愉快!

学习更多技能

请点击下方公众号

871e0e4320157916b96574807d579de6.gif

6a0aff6fbdc1b9f02f966be96af42eaf.jpeg

c730f850f64160654c87f07e7bf75dfb.png

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值