本文翻译自 Node.js Power Tools: 13 Libraries Every Developer Should Know,作者:Pinjari Rehan, 略有删改。
Node.js被视为许多Web开发人员的理想运行时环境。它是世界上最流行的编程语言之一,Node.js提供了通过JavaScript库重用代码的能力,但是在项目中选择合适的库可能很困难。
有用的库可以缩短开发时间,并为您的Web应用程序提供几个优点,例如更快的加载时间和减少应用程序包的大小。在选择库时,要考虑应用程序的复杂性、支持库的社区、更新的频率以及文档的质量。
Node.js库通过Node.js包管理器npm进行维护,npm可以帮助安装各种开源库。下文选择了13个不错的Node.js库,它们使Web开发变得更简单,希望对你有帮助。
Node.js是一个开源的服务器端运行时环境,用于JavaScript编程。它的异步特性和跨平台互操作性使其成为流行的Web开发基础。Node.js使用事件驱动和非阻塞I/O,使其在处理大量数据的实时分布式系统中非常高效。
库,有时称为模块,是预先编写的代码,封装了经常使用的操作。
你可以利用库来加速编码过程,并鼓励代码重用,这将有助于你保持你的工作“DRY”(不要重复自己)。
框架通常作为整个程序的骨架,与框架相反,库是完成的功能,可以在项目的任何开发阶段轻松使用。
让我们来看看这13个Node.js库,看看它们能提供什么功能让我们的Web开发更简单。
Sequelize是一个基于promise的Node.js对象关系映射器(ORM),它使开发人员更容易使用关系数据库。支持PostgreSQL,MySQL,MariaDB,SQLite和更多数据库。
Sequelize使用JavaScript对象对数据库表的结构进行建模,并连接到常用的关系数据库以查询和更改数据。它解析检索到的数据并将其作为JavaScript对象返回。
功能和优点
CORS是一个Node.js包,它使用Connect/Express作为中间件提供跨域资源共享(CORS)。
CORS包装了Node.js路由中间件,允许程序从其自身域以外的域访问资源。
它接受多个参数来指定跨域选项,如origin、header等。
功能和优点
Nodemailer简化了从Node.js服务器发送的电子邮件。
它使用一个传输对象,该对象基于简单邮件传输协议(SMTP)以及其他支持传输。创建消息时,此传输对象接受from、to、subject、body和其他参数作为输入。
功能和优点
Passport是一个模块化的Node.js身份验证中间件。
Passport支持超过500种身份验证方案,包括Google、Facebook、Twitter和其他自定义和单点登录(SSO)提供商。
普通用户名和密码登录、通过OAuth进行的社交网站委托身份验证以及用于联合身份验证的OpenID都是可选的。
功能和优点
Async 是一个强大的 Node.js 实用工具模块,可帮助开发人员使用 JavaScript "async"或接受回调的方法来处理异步 JavaScript。
当您为Async模块提供一个回调数组时,它会运行并包装它们传递promise。
功能和优点
Winston是Node.js的日志包,允许在许多传输上进行通用日志记录。
这些传输器根据您的应用程序的要求存储和自定义日志。除了默认值外,createLogger
方法还允许您创建使用可用传输选项(包括控制台、文件和数据库)的自定义日志记录器。
功能和优点
Mongoose 是一款基于 Node.js 的 MongoDB 对象建模工具,通常被称为对象数据建模(ODM)库,它提供了诸如钩子、模型验证、连接和查询等功能。
Mongoose为应用程序数据提供了一个基于模式的解决方案,它在应用程序层强加了一个单一的模式,从而产生了一个MongoDB集合。
每个模式都与Mongoose模型耦合,该模型使您能够对MongoDB集合执行查询,例如获取,更新和删除数据。
功能和优点
Socket.IO是一个Node.js通信包,它允许客户端浏览器和服务器进行真实的实时、双向和基于事件的通信。
它通过HTTP长轮询使用数字握手在服务器和客户端之间建立低级连接。一旦连接建立,客户端和服务器之间的通信将通过TCP实时进行。
功能和优点
Lodash是一个JavaScript实用程序包,可帮助开发人员编写简单和可维护的代码。
它包括200多个实用函数,以帮助完成常见的编程任务,如类型检查,简单的数学运算等。
功能和优点
Axios是一个基于Node.js和浏览器的基于Promise的HTTP客户端。
它还根据需要管理浏览器或Node.js请求和响应数据的转换。Axios是同构的,这意味着它可以使用相同的代码库在服务器和客户端上运行。
Axios在服务器端使用本机HTTP模块,在客户端使用XMLHttpRequest进行HTTP通信。
功能和优点
Puppeteer是一个Node.js框架,它允许您通过DevTools协议提供用于控制Chrome/Chromium的高级API来自动化Chrome。
自动化前端测试,例如请求处理测试,识别和比较UI组件,以及性能测试等。开发人员可以通过将Puppeteer包导入他们的代码来构建Chromium实例。实例然后可以与浏览器引擎通信以完成自动化测试。
功能和优点
Multer 是一个 Node.js 中间件库。它基于 HTML 表单解析器 Busboy 构建,支持多部分和多形式数据。
初始化Multer实例后,它的一个参数是一个测试对象,它指定上传的文件将保存在服务器上的位置。Multer将文件对象与上载请求一起发送,Multer API将解析该文件对象并将其传输到目标站点。
功能和优点
Dotenv是一个Node.js实用程序模块,用于维护应用程序环境变量并保护关键配置数据。
Dotenv还帮助应用程序按照十二因素应用程序方法保存环境变量。在早期配置dotenv库时,.env
中的环境变量会立即注入provess.env。
功能和优点
Node.js 中有许多有用的库,但为您的项目选择一个理想的库可能很难。本文中讨论的一些Node.js库可能会成为您未来应用程序的“必备”。例如,如果你使用MongoDB做了很多工作,Mongoose可以成为你的救星。希望本文对你有帮助~
看完本文如果觉得有用,记得点个赞支持,收藏起来说不定哪天就用上啦~
专注前端开发,分享前端相关技术干货,公众号:南城大前端(ID: nanchengfe)