ExpressJS简介 [+6 学习资源]
ExpressJS是一个极简和灵活的Node.js Web框架,为移动应用和Web应用提供了一系列功能。
这个开源的web framework是由TJ Holowaychuk开发的。ExpressJS由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、AngularJS和Node.js)缩写来创建全栈应用。一些开发人员更喜欢Reactjs,并使用MERN(MongoDB、Express、Node.js和Reactjs)堆栈。在这两个选项中,Expressjs保持不变。
#2. 灵活且快速
你无需掌握庞大框架的许多不同部分,因为ExpressJS被设计为极简。它具有出色的路由系统、开箱即用的内容协商和middlewares,使其变得快速。
#3. 可扩展
许多组织使用Express构建应用程序的原因之一是它易于扩展。在开发大型应用程序时,Express几乎不需要额外的配置。许多模块、包和其他资源的存在使得开发大型应用程序变得轻松实用。
#4. 中间件的存在
ExpressJS有一系列中间件应用程序,加快和增强开发过程。中间件使得框架在客户端请求之前或之后运行典型脚本变得简单。中间件的存在使得开发人员可以轻松检查客户端操作,如登录和登出。
#5. 强大的路由系统
ExpressJS的路由系统允许开发人员创建处理几乎所有HTTP请求的强大API。你无需拥有庞大的路由系统,因为你可以使用路由器实例将代码分割成可管理的文件。你还可以将不同的路由组合到一个目录/文件夹中,以更好地管理你的应用程序。
ExpressJS的架构
Express应用程序将具有以下组件:
- 依赖项。ExpressJS本身是一个依赖项。你可以使用npm命令安装其他依赖项。
- 中间件。ExpressJS设置中的中间件是确定请求/响应周期的函数。
- 实例化。这只是用于创建对象的语句。
- 配置。配置是在实例化之后或在单独的文件中定义的自定义应用程序设置。
- 路由。路由是客户端用于访问服务器定义的各种资源或执行特定操作的终点。
- 引导服务器。执行
app.listen()
函数以启动开发服务器。
开始使用ExpressJS
ExpressJS运行在Node.js上,这意味着你需要在你的电脑上安装它。
你还需要Node Package Manager(npm)来管理开发环境中的所有依赖项。
你可以根据你的操作系统通过它的官方网站来下载。
下载完成后,分别运行以下两个命令,确保 Node 和 npm 已经安装。
node --version
npm --version
安装 ExpressJS
按照以下步骤进行操作
- 创建一个简单的 ExpressJS 应用。你可以手动创建,也可以使用以下命令
mkdir myapp
cd myapp
- 使用以下命令创建一个 package.json 文件
npm init
- 根据提示接受命令。不过将入口点(entry point)从 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 应用程序生成器
我们手动创建的应用程序非常基础。不过,你可以使用 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/,你将看到以下内容
使用 ExpressJS 可以开发的工具/应用
#1. 金融科技应用
银行和金融组织正在数字化,对金融科技应用的需求也在增加。这类应用用于支持/实现金融和银行服务。ExpressJS 已经被证明是创建可扩展金融科技应用的强大框架。
#2. 单页应用程序
Single-app applications,其中整个应用程序都基于单个页面进行路由,已经成为应用程序开发的现代方式。像 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全栈应用程序,这个课程是理想选择。您将学习如何将React与NodeJS、Express和MongoDB连接,如何实现身份验证和授权等。
#4. Express in Action:编写、构建和测试Node.js应用程序
《Express in Action》是一本详细介绍使用Node和ExpressJS创建Web应用程序的书籍。您将学习如何设置ExpressJS应用程序、使用MongoDB进行数据存储以及如何测试Express应用程序等。
预览 | 产品 | 评分 | 价格 | |
---|---|---|---|---|
|
Express in Action: Writing, building, and testing Node.js applications | $37.59 | Buy on Amazon |
#5. Express.js:Node.js的Web框架指南
Express.js:针对Node.js的Web框架指南提供了对ExpressJS Web框架的深入探讨。本书的讨论基于ExpressJS提供给用户的各种模型。
预览 | 产品 | 评分 | 价格 | |
---|---|---|---|---|
|
Express.js: Guide Book on Web framework for Node.js | $8.38 | Buy on Amazon |
#6. ExpressJS官方文档
ExpressJS 是一个有很好文档的node.js框架,您可以在官方文档中学习到您需要开始的一切。无论您是刚刚入门还是高级开发人员,都可以使用此资源。
总结
ExpressJS是当今世界上最著名的 Node.js Web框架之一。强大功能的组合和易学习的曲线使其多年来一直占据这个位置。ExpressJS作为Node.js的基础,理解它可以更容易地掌握其他相关框架。