Module 03 · Express Web Application FrameworkExpress Web 应用框架
Introduction to Web FrameworksWeb 框架简介
🎥 视频目标:
在观看本视频后,你将能够:
- 解释Node.js与基于Node.js的Web框架的区别
- 解释MVC和REST API架构风格
- 描述几个流行的Node.js Web框架的显著特点
Node.js与Web框架的区别
Node.js有时被错误地称为Web框架,但Node.js其实不是一个框架,而是一个运行时环境,它在服务器上执行JavaScript代码。
- 运行时环境(Runtime Environment):
运行时环境是执行特定代码库的硬件和软件环境。 - 框架(Framework):
框架是构建应用程序的基本结构,为特定环境提供支持。
因此,为了充分利用Node.js,开发者需要结合使用与Node.js兼容的Web框架,这些框架被称为Node Web框架或Node框架。

Web框架的两种主要架构风格
在讨论具体的Web框架之前,我们首先讨论Web框架可以采用的两种后端架构:MVC和REST API。这两种架构风格是相辅相成的,并不是互相排斥的。
1. MVC架构(Model-View-Controller)
MVC是一种将应用程序划分为三个主要组件的架构模式:模型(Model)、视图(View)和控制器(Controller)。
- 模型(Model):负责管理应用程序的数据,与数据库交互,处理数据逻辑。
- 视图(View):负责渲染由模型传递给它的数据的展示部分。
- 控制器(Controller):负责处理用户输入的数据流,接收用户的请求,将数据传递给模型进行处理或存储。


2. REST API架构(Representational State Transfer API)
RESTful API允许多个Web服务之间进行通信。其遵循以下几个关键约束:
- 无状态(Stateless):客户端无需知道服务器的状态,服务器也不需要了解客户端的状态。

- 通过资源操作进行通信:客户端通过HTTP方法(如GET、POST、PATCH、DELETE)请求资源,服务器返回资源的状态表现。
- 数据格式:客户端和服务器之间的数据传输通常使用JSON格式,但也可以是HTML、XML、Python、PHP或纯文本。

流行的Node Web框架
1. Express.js
- 特点:
- 广泛使用,为路由和中间件提供支持。
- 使用JavaScript编写,学习曲线较小,便于快速上手。
- 适合实现MVC架构,提供调试机制,帮助快速定位应用错误。
- 支持异步编程,能够高效处理并发请求,提升性能。
- 提供HTTP助手,方便处理HTTP请求,内容协商功能良好,有助于客户端和服务器之间的高效通信。
2. Koa.js
- 特点:
- 由与Express相同的团队开发,目标是打造更小、更具表达性、基础更强的Web应用框架。
- 使用异步函数,消除了回调函数的需求,增强了错误处理能力。
- 适合开发高性能、复杂、需求较高的应用,适用于经验丰富的大型开发团队。
3. Socket.io
- 特点:
- 用于开发实时双向数据交换的应用程序,如聊天、视频会议、多玩家游戏等。
- 支持通过WebSocket进行通信,服务器主动推送数据,无需客户端发起请求。
- 适合开发实时性要求高的应用,如聊天室、短信应用、多人在线游戏。
4. Hapi.js
- 特点:
- 以其安全性和丰富的内置插件而著称,减少了对第三方中间件的依赖。
- 适用于开发代理服务器、API服务器、HTTP代理应用和REST API等。
- 以高可靠性和稳定性著称,适合复杂系统和高安全性需求的应用。
5. NestJS
- 特点:
- 适用于构建动态的、可扩展的企业应用,结合其强大的库支持和灵活性。
- 遵循MVC架构,基于Express构建,功能类似且提供相似的支持。
- 兼容TypeScript,支持与Angular前端框架协同工作,能够结合面向对象编程和函数响应式编程,极大地提高开发效率和应用性能。
总结
在本视频中,你学到了以下内容:
- Node.js是一个运行时环境,而Node Web框架利用Node.js环境运行应用程序。
- MVC架构将后端应用程序划分为模型、视图和控制器三部分。
- REST API框架使用HTTP方法进行服务间通信。
- 几个流行的Node Web框架包括Express、Koa、Hapi.js和NestJS。
这些框架在构建Web应用时各有其独特的优势,选择适合的框架可以有效提升开发效率和应用性能!