nodejs
被视为许多Web
开发人员的理想运行时环境。
nodejs
的设计是为了在运行时中使用JavaScript
编写的代码,它是世界上最流行的编程语言之一,并允许广泛的开发者社区构建服务器端应用程序。
nodejs
提供了通过JavaScript
库重用代码的能力,但是选择合适的库可能很困难。
有用的库可以缩短开发时间,并为我们的Web
应用程序提供一些优势,例如更快的负载时间和减少应用打包大小。
在选择库时,需要考虑应用程序的复杂性、支持库的社区、更新的频率及其文档的质量。本文就将介绍几个非常流程的库
Sequelize
是一种基于Promise
的nodejs
对象关系映射器(ORM
)的使用,使开发人员更容易使用关系数据库。
支持PostgreSQL
、mysql
、 MariaDB
、SQLite
等数据库。
使用javaScript
对象对数据库表的结构进行序列化,并连接到受欢迎的关系数据库来查询和更改数据。然后它解析所检索到的数据,并将其作为javaScript
对象返回。
特征和好处:
SQL
查询SQL
注入漏洞和SQL
注入攻击GraphQL
CORS
使用Connect/Express
提供跨域来源资源共享(CORS
)作为中间件。
CORS
包封装了nodejs
路由中间件,允许程序从自己的域以外的域访问资源。
它接受几个参数来指定跨域来源选项,如源、请求头等。
特点和好处:
Web
应用程序中启用CORS
所需的代码数量。CORS
,同时禁止其他来源。Nodemailer
简化从nodejs
服务器发送的电子邮件。
它使用一个传输对象,该对象除其他支持传输外,是基于简单的邮件传输协议。
优点和特点:
SMTP
、亚马逊简单电子邮件服务(SES
)、邮件和流都由一个模块提供支持。txt
和HTML
格式。passport
是一个nodejs
的认证中间件模块。
passport
支持超过500个认证方案,包括谷歌、Facebook
、推特和其他定制和单登录(SSO
)提供商。
通常的用户名和密码登录、通过OAuth
对社交网站进行授权认证。
特点和好处:
SSO
认证Express
和 Connect
中间件的无障碍配置,可以避免在应用程序中安装额外的路由。Async
是一个强有力的nodejs
实用模块,它通过使用javascript
中的async
或回调接受方法,帮助开发人员使用异步javascript
。
当我们向async
模块提供一个回调数组,它会将结果包装在一个Promise
进行返回。
特点和优势:
javascript
中的嵌套"回调地狱"。
Winston
是一个用于nodejs
的日志包。
这些transporters
根据我们的应用程序的要求存储和定制日志。
特点和好处:
JSON
或文本格式保存日志。Mongoose
是基于JS
的MongoDB
数据库对象建模工具,通常被称为对象数据建模(ODM
)库,它提供了挂钩、模型验证、连接和查询等功能。
Mongoose
通过在应用程序层中添加单个模式来提供基于架构的应用程序数据解决方案,该架构将导致与MongoDB
集合。
特色和好处:
Mongodb
事务代码。MongoDB
数据库集合的指定结构,向开发人员提供一个MongoDB
数据库实例。Socket.IO
是一个nodejs
通信包,允许客户端浏览器和服务器实时、双向和基于事件的通信。
它通过http
在服务器和客户机之间建立低层次的连接。
一旦建立了连接,客户机和服务器的通信就会实时地发生在整个TCP
上。
特色和好处:
http
长选作为备用选择。Lodash
是一个实用javaScript
程序包,帮助开发人员编写简单和可维护的代码。
它包括了200多个实用程序函数,以帮助处理常见的编程杂务,比如检查类型、简单的数学操作等等。
特点和优势:
Polyfills
用于实现跨浏览器兼容性。Axios
是一个基于Promise
的http
客户端。它还根据需要管理浏览器或nodejs
请求和响应数据的转换。
Axios
是同构的,这意味着它可以使用相同的代码在服务器和客户端上操作。
Axios
在服务器端使用一个本地的HTTP
模块,而在客户端使用XMLHttpRequest
优先进行http
通信。
特点和优势:
HTTP
数据类型提供API
方法,如get
、post
等。http
查询时,通过防止跨站点请求伪造(csrf
)来提高安全性。JSON
格式。puppeteer
是一个高级的nodejs
框架,允许我们通过提供一个高级的API
来控制Chrome/Chromium
浏览器(通过DevTools
协议)。
它自动化前端测试,如请求处理测试、标识和比较UI
组件以及性能测试等。
开发人员可以通过将木偶包导入代码来构建一个Chrome
实例。
然后,该实例可以与浏览器引擎通信,以实现自动化测试。
特点和优势:
Multer
是一个nodejs
中间件库。它是建立在HTML
表单解析器总线和支持multipart
和multiform
数据。
初始化实例后,它的参数之一是一个测试对象,它指定上传的文件将保存在服务器的哪里。
Multer
提供了一个文件对象和上传请求,而Multer API
解析并将其传输到目标站点。
特点和优势:
http
请求数据更易于存储。Dotenv
是一个维护应用程序环境变量和保护关键配置数据的nodejs
实用模块。
当配置dotenv
时,环境变量立即注入process.env
中。
特点和优势:
API key
和登录凭证,并允许每个开发人员建立自己的环境文件。