ExpressJS 是一款精巧而富于弹性的 Node.js Web 框架,为移动应用和 Web 应用提供了强大的功能支持。
这款开源 Web 框架由 TJ Holowaychuk 倾力打造,并由 Node.js 基金会负责维护。
为何选择 ExpressJS?
ExpressJS 提供了简洁的 API,助力开发者构建后端、Web 应用和网站。因此,这款 Web 框架可与 Python 的 Django 和 Ruby 的 Rails 相提并论。
然而,与 Django 和 Rails 强调“约定优于配置”的构建方式不同,ExpressJS 非常灵活且可扩展,它不预设“最佳实践”的条条框框。
总而言之,以下是您应当选用 ExpressJS 的理由:
- 轻松创建 API 和 Web 应用程序。
- 其 API 非常强大,使路由管理变得简单高效。
- 异步且单线程处理能力出色。
ExpressJS 的特点
#1. MEAN 技术栈的重要组成部分
JavaScript 仍然是最受欢迎的编程语言之一,因为它拥有可在全栈应用程序的前端和后端使用的框架。
部分 JavaScript 开发者使用 MEAN 技术栈,即 MongoDB、Express、Node.js 和 AngularJS 的首字母缩写,来创建全栈应用程序。也有开发者偏爱 Reactjs,并使用 MERN 技术栈(MongoDB、Express、Node.js 和 Reactjs)。在这两种选择中,Expressjs 始终是核心组件。
#2. 灵活且快速
ExpressJS 采用极简主义设计,您无需掌握大型框架的诸多复杂部分。出色的路由系统、开箱即用的内容协商以及中间件的存在,使其运行速度非常快。
#3. 可扩展性强
基于 Express 构建的应用易于扩展,这解释了众多组织为何选择它。在开发大型应用时,Express 几乎无需额外配置。大量模块、包和附加资源的存在使得开发大型应用程序切实可行。
#4. 中间件支持
ExpressJS 提供了一系列中间件应用,以加速和增强开发过程。中间件允许框架在客户端请求之前或之后执行特定的脚本,方便开发者检查诸如注册/登录和注销等客户端操作。
#5. 强大的路由系统
ExpressJS 的路由系统允许开发者创建强大的 API 来处理几乎所有 HTTP 请求。 您可以使用路由器实例将代码拆分为可管理的文件,避免路由系统过于臃肿。 您还可以将不同的路由分组到一个目录/文件夹中,从而更好地管理您的应用程序。
ExpressJS 的架构
图片来源:turing.com
Express 应用程序通常包含以下组件:
- 依赖项。 ExpressJS 本身就是一个依赖项。 您可以使用 npm 命令安装其他依赖项。
- 中间件。 ExpressJS 设置中的中间件是处理请求/响应生命周期的函数。
- 实例化。 这些是创建对象的语句。
- 配置。 配置是在实例化之后或在单独文件中定义的、基于应用的自定义设置。
- 路由。 路由是客户端用来访问各种资源或执行服务器定义的操作的端点。
- 启动服务器。 执行 app.listen() 函数以启动开发服务器。
入门:ExpressJS
ExpressJS 运行于 Node.js 之上,这意味着您需要在电脑上安装 Node.js。
您还需要节点包管理器 (npm) 来管理开发环境中的所有依赖项。
您可以根据您的操作系统,从其官方网站下载并安装 Node.js。
安装完成后,运行以下两个命令以验证 node 和 npm 是否已成功安装:
node --version
npm --version
安装 ExpressJS
请按照以下步骤操作:
- 创建一个简单的 ExpressJS 应用程序。 您可以手动创建,也可以使用以下命令:
mkdir myapp
cd myapp
- 使用以下命令创建 package.json 文件:
npm init
- 根据提示接受命令。 不过,请修改入口点:(index.js) 为 app.js
- 使用以下命令安装 ExpressJS:
npm install express
- 显示“Hello World”
在根目录中,创建一个名为 app.js 的文件。
添加以下代码:
const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) })
运行以下命令以启动本地服务器:
node app.js
在您的浏览器中访问 http://localhost:3000/,您将看到以下输出:
快速应用程序生成器
我们上面手动创建的应用程序非常基础。 然而,您可以使用 Express 生成器来避免手动创建 ExpressJS 应用程序。
- 以下是生成 ExpressJS 应用程序的命令:
npx express-generator
- 如果您使用的是早于 8.2.0 的 node.js 版本,您可以安装应用程序生成器并使用以下命令启动它:
npm install -g express-generator
express
express --view=pug myapp
以上命令将生成一个名为“myapp”的应用程序。
- 使用以下命令安装所有需要的依赖项:
cd myapp npm install
- 根据您的操作系统运行开发服务器:
在 Windows PowerShell 上:
PS> $env:DEBUG='myapp:*'; npm start
在 Windows 命令提示符下:
> set DEBUG=myapp:* & npm start
在 macOS 或 Linux 上:
DEBUG=myapp:* npm start
在浏览器中访问 http://localhost:3000/,您将看到以下内容:
#1. 金融科技应用
银行和金融机构正在加速数字化转型,这催生了对金融科技应用程序的巨大需求。此类应用程序用于支持/启用金融和银行服务。 ExpressJS 已被证明是创建可扩展的金融科技应用程序的强大框架。
#2. 单页应用程序
单页应用程序(整个应用在单个页面上路由)已成为现代应用程序开发的主流模式。 Airbnb、Netflix、Pinterest、PayPal、Gmail 和 Google 地图等大型移动和 Web 应用程序都是单页应用程序的典型范例。 ExpressJS 是构建具有简单路由的单页应用程序的理想框架。
#3. 流媒体应用
诸如 Spotify 和 Netflix 等应用程序对最终用户来说可能看起来很简单。 然而,此类应用程序非常复杂,涉及多层数据。 ExpressJS 是创建此类应用程序的绝佳选择,因为它能够高效处理异步数据流。
#4. 实时协作工具
现代工作环境由团队组成,这些团队为了共同的目标协作执行不同的任务。 ExpressJS 具备支持协作工具开发的各种功能。该框架在创建仪表板和实时应用聊天时也很有用,因为它很容易与 WebSocket 集成。
优势:ExpressJS
- 免费且开源。您可以免费使用 ExpressJS,还可以修改现有代码以满足您的特定需求。
- 易于使用。 ExpressJS 允许您编写代码而无需遵循复杂的流程。该框架提供了大量工具和功能,以简化开发流程。
- 快速开发。 ExpressJS 拥有丰富的模板资源,确保您不必从头开始创建所有内容。
- 性能卓越。 基于 ExpressJS 构建的应用程序表现出色,因此您可以在小型和企业级应用中使用它。
缺点:ExpressJS
- 部分错误消息不够清晰。与其他后端/API 开发框架不同,ExpressJS 中的 404 响应不一定表示错误。
- 代码组织性较弱,因为它没有“最佳实践”的标准模式。
学习资源:ExpressJS
#1. Node.js、Express、MongoDB 等
如果您想从单一资源中学习整个后端技术栈,那么本课程是理想之选。在课程结束时,您将能够使用 ExpressJS 和其他相关技术创建快速且可扩展的 RESTful API。
#2. Just Express
如果您想将 Express 服务器作为 REST API 进行操作,则应学习本课程。本课程还会讲解 HTTP 基础知识,使您更容易理解请求/响应周期。
#3. React、NodeJS、Express 和 MongoDB
如果您想学习如何创建 JavaScript 全栈应用程序,那么此 MERN 全栈课程将是您的理想选择。 您将学到诸如如何将 ReactJS 与 NodeJS、Express 和 MongoDB 连接起来,如何实现身份验证和授权等内容。
#4. Express in Action:编写、构建和测试 Node.js 应用程序
《Express in Action》是一本详细介绍如何使用 Node 和 ExpressJS 创建 Web 应用程序的书籍。您将学习如何设置 ExpressJS 应用程序、使用 MongoDB 进行数据存储以及如何测试 Express 应用程序等内容。
#5. Express.js:Node.js Web 框架指南
《Express.js:Node.js Web 框架指南》深入探讨了 ExpressJS Web 框架。本书中的讨论基于 ExpressJS 为用户提供的各种模型。
#6. ExpressJS 官方文档
ExpressJS 是一个文档详尽的 node.js 框架,您可以在官方文档中学习入门所需的一切知识。 无论您是初学者还是高级开发人员,此资源都值得参考。
总结
ExpressJS 是当今世界最受欢迎的 Node.js Web 框架之一。 其强大的功能和简单的学习曲线使其多年来一直保持着领先地位。 ExpressJS 是 Node.js 的基础,这意味着掌握它可以更容易地理解其他相关框架。