2024 不容错过的 10 个 Node 库

发布于:2024-04-25 ⋅ 阅读:(16) ⋅ 点赞:(0)

大家好,这里是大家的林语冰。

对于新手而言,Node 是一个复杂的运行时环境,允许我们在服务端运行 JS 代码。这意味着,我们可以使用熟悉的同款 JS 语言创建前端和后端。

00-wall.png

库(libraries),又名为模块(module),是可以在项目中使用的预先编写的代码片段。

库和模块可以为开发者提供辅助:

  • 节约时间成本:无需反复造轮子!库为常见任务提供了现成的解决方案。
  • 编写更精简的代码:库经常以提高代码可读性和可维护性的方式涵盖复杂的功能。
  • 提高我们的技能:学习如何使用库可以让我们获得新的概念和最佳实践。

所以,本期我们共享的是 —— 2024 不容错过的 10 个高质量 Node 库。

免责声明

本文属于是语冰的直男翻译了属于是,略有删改,仅供粉丝参考。英文原味版请传送 。

1. Axios

01-axios.png

虽然你可能不知道 Axios 的标准发音怎么念,但 Axios 可以轻松地使用 Node 发送 HTTP 请求。

Axios 基于 Promise 的 HTTP 客户端,使发送和接收数据变得愉悦。Axios 还具有 JSON 自动解析和内置安全保护。

Axios 库的功能和优势

  • Axios 提供了经典 HTTP 数据类型的 API 方法,比如 GET、PUT 和 POST 等。
  • Axios 通过在因特网上执行 HTTP 查询时防止 CSRF(跨站点请求伪造),从而提高安全性。
  • Axios 的 JSON 自动数据转换轻松将响应数据转换为 JSON

2. Dotenv

Dotenv 保证您重要数据配置的安全。Dotenv 库允许我们处理环境变量,同时将 API 密钥和其他密钥保留在核心代码库之外。

Dotenv 库的功能和优势

  • Dotenv 允许我们将密钥与源码隔离,比如 API 密钥和登录凭据,并允许每个开发者建立自己的 .env 文件。
  • 由于 Dotenv 零依赖模块,因此不会增加程序的体积。

粉丝请注意,Node 的较新版本或推陈出新的运行时(比如 Bun 等)已经内置了针对环境变量的支持,你可以根据自己的 Node 版本或运行时环境选择是否集成 Dotenv。

3. Lodash

03-lo.png

Lodash 是满足实用需求的一站式工具库。Lodash 为常见任务提供了大量辅助,比如数组操作、对象操作等。Lodash 可以为我们节约大量时间成本和工作。

Lodash 库的功能和优势

  • Polyfill(功能补丁)用于实现跨浏览器兼容性。
  • 当处理对象数组时,Lodash 提供了内置的解决方案,比如 filtersearchflatMap 等。
  • Lodash 辅助开发者避免冗余,并维护精简的代码。

4. Async

04-async.png

Async 辅助我们处理 JS 中的异步编程。Async 提供了一种简单有效的方案来管理回调和 Promise,确保我们的代码结构化且易于理解。

Async 库的功能和优势

  • Async 提供了 70+ 种实用方法,用于轻松开发异步控制流。
  • Async 提供一种“并行”方法来处理针对主机的海量请求,否则我们需要大量代码才能实现同款功能。
  • Async 有助于终结 JS 中的嵌套“回调地狱”。

5. Sequelize

05-seq.png

Sequelize 是一个实用的库,它使关系数据库的使用变得轻而易举。Sequelize 允许我们创建看似简单的 JS 代码,而无需复杂的 SQL 查询。

Sequelize 库的功能和优势

  • Sequelize 可以连接到数据库并执行操作,无需编写原始 SQL 查询
  • Sequelize 可以减少 SQL 注入漏洞和 SQL 注入攻击
  • Sequelize 与 GraphQL 兼容

6. CORS(跨域资源共享)

06-cors.png

您是否遭遇过 CORS 的偷袭?无所谓,CORS 库会出手的!

CORS 模块允许我们的 Web App 与其他域的资源进行交互,从而使数据交换变得容易。

CORS 库的功能和优势

  • CORS 库可以减少在 Web App 中启用 CORS 所需的代码量。
  • CORS 允许我们指定列入白名单的域名,并允许用户为某些源启用 CORS,同时禁止其他源。
  • CORS 提供流畅的错误处理,辅助开发者分析可疑来源的安全风险。

7. passport(护照)

07-pass.png

要求我们从零开始创建身份验证可能极具挑战,passport 凭借其模块化的身份验证方法来拯救我们。

passport 支持大量的 provider(提供者),包括社交登录和定制方案。

passport 库的功能和优势

  • passport 通过最少的编码,内置社交网站的 SSO 身份验证
  • passport 为许多 session 设置永久登录信息。
  • 通过使用 Express 和 Connect 中间件的无障碍配置,passport 可以避免在 App 中安装额外的路由。

8. Winston(温斯顿)

08-win.png

日志记录对于故障排除和 App 监控而言不可或缺。

Winston 是一个灵活的日志记录库,允许我们将消息记录到各种目的地,比如控制台和文件。

Winston 库的功能和优势

  • Winston 可以从单个配置文件控制日志记录。
  • Winston 允许我们自定义日志格式,比如以 JSON 或纯文本格式保存日志。
  • Winston 提供可调整的日志记录级别,我们可以根据 App 的需求进行自定义。

9. Mongoose(猫鼬)

09-mon.png

如果你使用了 MongoDB,那么 Mongoose 必不可少。

Mongoose 作为 ODM(对象数据建模)框架运行,在 App 和数据库之间创建一个抽象层。这使得 MongoDB 数据的处理变得更加容易。

Mongoose 库的功能和优势

  • Mongoose 提供简单的查询抽象,允许开发者为 MongoDB 事务编写更少的代码。
  • Mongoose 内置数据验证,允许我们定义可以在数据库中添加或更改的数据类型。
  • Mongoose 为 MongoDB 集合实现指定的结构,为开发者提供样板 MongoDB 实例。
  • Mongoose 允许我们通过将某些查询链接在一起来处理它们。

10. Multer(鲻鱼)

10-multer.png

Multer 可以轻松管理文件上传。Multer 中间件包处理传入的多部分表单输入,并使上传的文件可供我们的 App 使用。

Multer 库的功能和优势

  • 通过内置解析,Multer 使原始 HTTP 请求数据更易于存储。
  • Multer 允许我们定义文件的编码类型,这为上传的文件提供额外的保护。
  • Multer 可以过滤并限制文件类型和上传体积等选择

本期话题是 —— 你最常用或最宝藏的 Node 工具库是什么?

欢迎在本文下方自由言论,文明共享。谢谢大家的点赞,掰掰~

公众号每天 9 点半更新,坚持阅读,自律打卡,每天一次,进步一点

26-cat.gif