大家好,这里是大家的林语冰。
对于新手而言,Node 是一个复杂的运行时环境,允许我们在服务端运行 JS 代码。这意味着,我们可以使用熟悉的同款 JS 语言创建前端和后端。
库(libraries),又名为模块(module),是可以在项目中使用的预先编写的代码片段。
库和模块可以为开发者提供辅助:
- 节约时间成本:无需反复造轮子!库为常见任务提供了现成的解决方案。
- 编写更精简的代码:库经常以提高代码可读性和可维护性的方式涵盖复杂的功能。
- 提高我们的技能:学习如何使用库可以让我们获得新的概念和最佳实践。
所以,本期我们共享的是 —— 2024 不容错过的 10 个高质量 Node 库。
免责声明
本文属于是语冰的直男翻译了属于是,略有删改,仅供粉丝参考。英文原味版请传送 。
1. Axios
虽然你可能不知道 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
Lodash 是满足实用需求的一站式工具库。Lodash 为常见任务提供了大量辅助,比如数组操作、对象操作等。Lodash 可以为我们节约大量时间成本和工作。
Lodash 库的功能和优势:
- Polyfill(功能补丁)用于实现跨浏览器兼容性。
- 当处理对象数组时,Lodash 提供了内置的解决方案,比如
filter
、search
和flatMap
等。 - Lodash 辅助开发者避免冗余,并维护精简的代码。
4. Async
Async 辅助我们处理 JS 中的异步编程。Async 提供了一种简单有效的方案来管理回调和 Promise
,确保我们的代码结构化且易于理解。
Async 库的功能和优势:
- Async 提供了 70+ 种实用方法,用于轻松开发异步控制流。
- Async 提供一种“并行”方法来处理针对主机的海量请求,否则我们需要大量代码才能实现同款功能。
- Async 有助于终结 JS 中的嵌套“回调地狱”。
5. Sequelize
Sequelize 是一个实用的库,它使关系数据库的使用变得轻而易举。Sequelize 允许我们创建看似简单的 JS 代码,而无需复杂的 SQL 查询。
Sequelize 库的功能和优势:
- Sequelize 可以连接到数据库并执行操作,无需编写原始 SQL 查询
- Sequelize 可以减少 SQL 注入漏洞和 SQL 注入攻击
- Sequelize 与 GraphQL 兼容
6. CORS(跨域资源共享)
您是否遭遇过 CORS 的偷袭?无所谓,CORS 库会出手的!
CORS 模块允许我们的 Web App 与其他域的资源进行交互,从而使数据交换变得容易。
CORS 库的功能和优势:
- CORS 库可以减少在 Web App 中启用 CORS 所需的代码量。
- CORS 允许我们指定列入白名单的域名,并允许用户为某些源启用 CORS,同时禁止其他源。
- CORS 提供流畅的错误处理,辅助开发者分析可疑来源的安全风险。
7. passport(护照)
要求我们从零开始创建身份验证可能极具挑战,passport 凭借其模块化的身份验证方法来拯救我们。
passport 支持大量的 provider
(提供者),包括社交登录和定制方案。
passport 库的功能和优势:
- passport 通过最少的编码,内置社交网站的 SSO 身份验证
- passport 为许多 session 设置永久登录信息。
- 通过使用 Express 和 Connect 中间件的无障碍配置,passport 可以避免在 App 中安装额外的路由。
8. Winston(温斯顿)
日志记录对于故障排除和 App 监控而言不可或缺。
Winston 是一个灵活的日志记录库,允许我们将消息记录到各种目的地,比如控制台和文件。
Winston 库的功能和优势:
- Winston 可以从单个配置文件控制日志记录。
- Winston 允许我们自定义日志格式,比如以
JSON
或纯文本格式保存日志。 - Winston 提供可调整的日志记录级别,我们可以根据 App 的需求进行自定义。
9. Mongoose(猫鼬)
如果你使用了 MongoDB,那么 Mongoose 必不可少。
Mongoose 作为 ODM(对象数据建模)框架运行,在 App 和数据库之间创建一个抽象层。这使得 MongoDB 数据的处理变得更加容易。
Mongoose 库的功能和优势:
- Mongoose 提供简单的查询抽象,允许开发者为 MongoDB 事务编写更少的代码。
- Mongoose 内置数据验证,允许我们定义可以在数据库中添加或更改的数据类型。
- Mongoose 为 MongoDB 集合实现指定的结构,为开发者提供样板 MongoDB 实例。
- Mongoose 允许我们通过将某些查询链接在一起来处理它们。
10. Multer(鲻鱼)
Multer 可以轻松管理文件上传。Multer 中间件包处理传入的多部分表单输入,并使上传的文件可供我们的 App 使用。
Multer 库的功能和优势:
- 通过内置解析,Multer 使原始 HTTP 请求数据更易于存储。
- Multer 允许我们定义文件的编码类型,这为上传的文件提供额外的保护。
- Multer 可以过滤并限制文件类型和上传体积等选择
本期话题是 —— 你最常用或最宝藏的 Node 工具库是什么?
欢迎在本文下方自由言论,文明共享。谢谢大家的点赞,掰掰~
公众号每天 9 点半更新,坚持阅读,自律打卡,每天一次,进步一点。